Python数据可视化-添加注释文字

在二维坐标图中我们经常对绘制的图形进行标注。在 matplotlib 中比较常用的有text和annotate两种标注方法,其中:

  • text: 无指向型标注,仅仅包含注释的文本内容
  • annotate: 指向型注释,不仅包含注释的文本内容还包含箭头指向,能够突显细节

plt.text()

plt.text(x, y, s, fontdict = None, **kwargs)

参数说明:

  • x, y 为标注文本在绘图区域中的位置
  • s 为标注文本的内容
  • fontdict 为文本属性的字典,如果 fontdict 为 None,则使用默认的文本属性
  • **kwargs 可以使用键值对的形式替换 fontdict 中的文本属性

示例

import numpy as np
import matplotlib.pyplot as plt

font = {'family': 'serif',
        'color':  'darkred',
        'weight': 'normal',
        'size': 16 }

x = np.linspace(0.0, 5.0, 100)
y = np.cos(2*np.pi*x) * np.exp(-x)

plt.plot(x, y, 'k')
plt.title('Damped exponential decay', fontdict=font)
plt.text(2, 0.65, r'$\cos(2 \pi t) \exp(-t)$', fontdict=font)
plt.xlabel('time (s)', fontdict=font)
plt.ylabel('voltage (mV)', fontdict=font)

plt.subplots_adjust(left=0.15)
plt.show()

运行结果:


image.png

plt.annotate()

Matplotlib中的annotate函数可用于在图形上给数据添加文本注解,而且支持带箭头的划线工具,非常方便我们在合适的位置添加描述信息。

plt.annotate(s, xy, *args, **kwargs)

参数说明:

  • s:注释文本的内容
  • xy:被注释的坐标点,二维元组形如(x,y)
  • xytext:注释文本的坐标点,也是二维元组,默认与xy相同
  • xycoords:被注释点的坐标系属性,允许输入的值如下
  • arrowprops:箭头的样式,dict(字典)型数据,如果该属性非空,则会在注释文本和被注释点之间画一个箭头。如果不设置'arrowstyle' 关键字,则允许包含以下关键字:

plt.annotate() 示例

import numpy as np
import matplotlib.pyplot as plt

fig, ax = plt.subplots()

t = np.arange(0.0, 5.0, 0.01)
s = np.cos(2*np.pi*t)
line, = ax.plot(t, s, lw=2)

ax.annotate('local max', xy=(2, 1), xytext=(3, 1.5),
            arrowprops=dict(facecolor='black', shrink=0.05))
ax.set_ylim(-2, 2)
plt.show()

运行结果:


image.png

你可能感兴趣的:(Python数据可视化-添加注释文字)