本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
前言
如果我们想要在图形中的任意位置添加注释,该如何用pyhton代码实现操作呢?
法1:
① 导入必要的库和模块matplotlib.pyplot
② 为了能使图形正常显示中文,需要事先引入以下两行代码
plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus'] = False
③ 然后使用text函数定义要添加的注释,该函数前两个参数为注释的坐标位置(相对于图形的),后面一个参数为注释文本
示例代码如下:
#解决中文显示问题 plt.rcParams['font.sans-serif']=['SimHei'] plt.rcParams['axes.unicode_minus']= False mu,sigma=100,15#均值和方差 x=mu+sigma*np.random.randn(10000)#np.random.randn()标准正态分布,通过本函数可以返回一个或一组服从标准正态分布的随机样本值 n,bins,patches=plt.hist(x,bins=50,density=1,facecolor='g',alpha=0.75)#绘制直方图 #x:这个参数是指定每个bin(箱子)分布的数据,对应x轴 #bins:这个参数指定bin(箱子)的个数,也就是总共有几条条状图 #density:这个参数指定密度,也就是每个条状图的占比例比,默认为1 #color:这个指定条状图的颜色 plt.xlabel('IQ值',fontsize=14,color='red') plt.ylabel('概率',fontsize=14,color='green') plt.title('IQ直方图') plt.text(60,.025,r'$\mu=100,\\sigma=15$') #添加Tex表达式 plt.axis([40,160,0,0.03]) #设置坐标轴范围 plt.grid(True) plt.show()
代码运行结果如下图所示:
法2:
示例代码:
ax=plt.subplot(111) t=np.arange(0,5,0.01) s=np.cos(2*np.pi*t) line=plt.plot(t,s,lw=2) #lw是linewidth的简写 #添加注释 plt.annotate('局部最大',xy=(2,1),xytext=(3,1.5),arrowprops=dict(facecolor='black',shrink=0.05)) plt.ylim(-2,2) #设置y轴的范围 plt.show()
运行结果如下:
注: text()函数会把添加的文本任意地放到图形的空白位置上,annotate()函数可以非常方便地在图形的特定位置添加文本。
以上文章来源于学海宇宙,作者 小宇宙