内容介绍
指向型注释文本可以帮助我们将重要数据点或趋势直观地呈现给读者。通过在图表上添加箭头和文本框,我们可以将注释与数据点相关联,以便更好地传达信息。例如,使用指向型注释文本显示极大值和极小值,或者将关键事件和趋势与图表中的特殊数据点相连。这样做可以凸显数据中的关键信息,并帮助读者更好地理解图表的含义。
而无指向型注释文本则更加简洁直观。通常,我们可以将该类型的注释文本直接放置于图表内部或图表周围的空白区域中。无指向型注释文本通常用于图表的标题、横纵坐标标签、图例和其他说明文字。通过选择合适的字体、字号和颜色,我们可以进一步提升注释文本的可读性和美观度。
添加指向型文本
annotate函数是用于在数据可视化图表中添加指向性文本的函数。它的基本语法格式如下:
annotate(text, xy, *args,**kwargs)
该函数常用参数的含义如下:
·s:表示注释文本的内容。
·xy:表示被注释的点的坐标位置,接收元组(x,y)。
·xytext:表示注释文本所在的坐标位置,接收元组(xy)。
·xycoords:表示xy的坐标系统,默认值为“data”,代表与折线图使用相同的坐标系统。·arrowprops:表示指示箭头的属性字典。
·bbox:表示注释文本的边框属性字典。
通过arrowprops改变箭头类型:
实例,为正余弦曲线图最小值添加指向箭头注释 :
首先绘制普通的正余弦曲线图,代码如下:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
plt.plot(x,y1,x,y2)
plt.show()
然后为其添加添加指向型注释文本,代码如下:
# 设置全局字体为中文字体
matplotlib.rc('font', family='SimHei')
# 找到y1数组的最小值的索引
min_index = np.argmin(y1)
# 添加指向型注释文本
plt.annotate('最小值', xy=(x[min_index], y1[min_index]), xytext=(-2, -1),
arrowprops=dict(facecolor='red', arrowstyle='->'))
这是完整代码:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
# 设置全局字体为中文字体
matplotlib.rc('font', family='SimHei')
#设置正余弦曲线函数参数
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
plt.plot(x, y1, x, y2)
# 找到y1数组的最小值的索引
min_index = np.argmin(y1)
# 添加指向型注释文本
plt.annotate('最小值', xy=(x[min_index], y1[min_index]), xytext=(-2, -1),
arrowprops=dict(facecolor='red', arrowstyle='->'))
plt.show()
运行程序,效果图如下:
添加无指向型注释文本
text函数是用于在数据可视化图表中添加指向性文本的函数。它的基本语法格式如下:
text(x,y,s,fontdict=None,withdash=<deprecated parameter>,**kwargs)
该函数常用参数的含义如下:
·x,y:表示注释文本的位置。
·s:表示注释文本的内容。
·fontdict:表示控制字体的字典。
·bbox:表示注释文本的边框属性字典。
·horizontalalignment或ha:表示水平对齐的方式,可以取值为center、right或 left。·vericalalignment或va:表示垂直对齐的方式,可以取值为center、top、 bottom、 baseline或 center_baseline。
实例,为正余弦曲线图添加无指向型的注释文本 :
首先绘制普通的正余弦曲线图,代码如下:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
plt.plot(x,y1,x,y2)
plt.show()
然后为其添加添加无指向型注释文本,代码如下:
# 添加右侧的注释文本
plt.text(np.pi + 0.1, 0.4, 'y=sin(x)', bbox=dict(facecolor='darkgray', alpha=0.5))
plt.text(np.pi + 0.1, 0.9, 'y=cos(x)', bbox=dict(facecolor='darkgray', alpha=0.5))
这是完整代码:
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(-np.pi, np.pi, 256, endpoint=True)
y1, y2 = np.sin(x), np.cos(x)
plt.plot(x, y1, x, y2)
# 添加右侧的注释文本
plt.text(np.pi + 0.1, 0.4, 'y=sin(x)', bbox=dict(facecolor='darkgray', alpha=0.5))
plt.text(np.pi + 0.1, 0.9, 'y=cos(x)', bbox=dict(facecolor='darkgray', alpha=0.5))
plt.show()