1.在绘图中显示公式
在Matplotlib中可以使用LaTex的命令来编辑公式,只需要在字符串前面加一个'r'即可。
示例1:
import numpy as np
import matplotlib.pyplot as plt
plt.xlim([1,4])
plt.ylim([1,3])
plt.text(2,2,r'$ \alpha \beta \pi \lambda \omega $',size=20)
plt.title(r'$ \sum_{n=1}^\infty -e^{n\pi} $',fontsize=15)
plt.show()
结果图:
2.绘图文本注释
绘图时可以通过text函数在指定位置(x,y)加入文本注释,也可以利用annotate()在图中实现带有指向型的文本注释。函数调用格式如下:
plt.text(x,y,s,fontdict=None,**kwargs)
plt.annotate(s,xy,*args,**kwargs)
#其中,x,y表示显示的文本的坐标位置,s表示显示的字符串
示例2:
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
%matplotlib inline
fig=plt.figure()
ax1=fig.add_subplot(121)
t=np.arange(0.0,5,0.01)
s=np.sin(2*np.pi*t)
ax1.plot(t,s,lw=2)
bbox=dict(boxstyle='round',fc='white')
plt.annotate('local max',xy=(2.3,1),xytext=(3,1.5),
arrowprops=dict(facecolor='black',edgecolor='red',headwidth=7,width=2),bbox=bbox)
#arrowstyle箭头类型,arrowstyle="->",connectionstyle="arc3"指的是xy与xytext之间的连接类型
bbox_prop=dict(fc='white')
ax1.set_ylabel('Y',fontsize=12)
ax1.set_xlabel('X',fontsize=12)
ax1.set_ylim(-2,2)
ax1.text(1,1.2,'max',fontsize=18)
ax1.text(1.2,-1.8,'$y=sin(2*np.pi*t)$',bbox=bbox,rotation=10,alpha=0.8)
ax2=fig.add_subplot(122)
x=np.linspace(0,10,200)
y=np.sin(x)
ax2.plot(x,y,linestyle='-.',color='purple')
ax2.annotate(s='Here I am',xy=(4.8,np.sin(4.8)),xytext=(3.7,-0.2),weight='bold',color='k',
arrowprops=dict(arrowstyle='-|>',connectionstyle='arc3',color='red'),
bbox=dict(boxstyle='round,pad=0.5',fc='yellow', ec='k',lw=1 ,alpha=0.8))
ax2.set_ylim(-1.5,1.5)
ax2.set_xlim(0,10)
bbox=dict(boxstyle='round',ec='red',fc='white')
ax2.text(6,-1.9,'$y=sin(x)$',bbox=dict(boxstyle='square',facecolor='white',ec='black'))
ax2.grid(ls=":",color='gray',alpha=0.5)
#设置水印(带方框的水印)
ax2.text(4.5,1,'NWNU',fontsize=15,alpha=0.3,color='gray',bbox=dict(fc="white",boxstyle='round',edgecolor='gray',alpha=0.3))
plt.show()
结果图: