本节内容: 1. 指向型注释annotate() 2. 无指向型注释text()
1. matplotlib.pyplot.annotate()
功能:在图中带有指向型文本注释信息,突显细节,官方项目地址,高级玩法,下面列出常用参数信息。
s:str, 注释信息内容
xy:(float,float), 细节所在的坐标位置
xytext:(float,float), 注释内容的坐标位置
weight: str or int, 设置字体线型,其中字符串从小到大可选项有{'ultralight', 'light', 'normal', 'regular', 'book', 'medium', 'roman', 'semibold', 'demibold', 'demi', 'bold', 'heavy', 'extra bold', 'black'}
color: str or tuple, 设置字体颜色 ,单个字符候选项{'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'},也可以'black','red'等,tuple时用[0,1]之间的浮点型数据,RGB或者RGBA, 如: (0.1, 0.2, 0.5)、(0.1, 0.2, 0.5, 0.3)等
arrowprops:dict,设置指向箭头的参数,字典中key值有①arrowstyle:设置箭头的样式,其value候选项如'->','|-|','-|>',也可以用字符串'simple','fancy'等,详情见顶部的官方项目地址链接。
②connectionstyle:设置箭头的形状,为直线或者曲线,候选项有'arc3','arc','angle','angle3',可以防止箭头被曲线内容遮挡
③color:设置箭头颜色,见前面的color参数。
bbox:dict,为注释文本添加边框,其key有①boxstyle,其格式类似'round,pad=0.5',其可选项如下:
③ edgecolor(可简写为ec)设置边框线条颜色
④lineweight(可简写为lw)设置边框线型粗细
⑤alpha设置透明度,[0,1]之间的小数,0代表完全透明,即类似③颜色设置无效。
# annotate()函数使用
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,10,200)#从0到10之间等距产生200个值
y=np.sin(x)
plt.plot(x,y,linestyle='-.',color='purple')
plt.annotate(s='Here I am',xy=(3,np.sin(3)),xytext=(4,-0.5),weight='bold',color='aqua',\
arrowprops=dict(arrowstyle='-|>',connectionstyle='arc3',color='red'),\
bbox=dict(boxstyle='round,pad=0.5', fc='yellow', ec='k',lw=1 ,alpha=0.4))
plt.show()
annotate()函数实现效果
2. 无指向型的注释文本 matplotlib.pyplot.text()函数,即只会在图中添加注释内容而无指向箭头。
参数信息:plt.text(x,y,s,family,fontsize,style,color)
补充说明
x,y代表注释内容位置,s代表注释文本内容,family设置字体,自带的可选项有{'serif', 'sans-serif', 'cursive', 'fantasy', 'monospace'},fontsize字体大小,style设置字体样式,可选项{'normal', 'italic'(斜体), 'oblique'(也是斜体)}
import matplotlib.pyplot as plt
import numpy as np
x=np.linspace(0,10,200)#从0到10之间等距产生200个值
y=np.sin(x)
plt.plot(x,y,linestyle='-.',color='dodgerblue')
# plt.text(x,y,s,family,fontsize,style,color)
plt.text(4, 0, 'Here you are', family='fantasy', fontsize=12, \
style='italic',color='mediumvioletred')
plt.show()
text()函数效果
总结
matplotlib画图函数有很多花样,函数参数内容可以互相借鉴,比如plt.text()中也可以添加bbox内容,文中没有标出,还有很多参数可以添加,有一些目前也没测试效果,之后测试会更新内容。
网友评论