Conclusion

使用python的matplotlib绘图时,当我们想要得到更高级的图表信息,有时候可能需要比较复杂的公式或者变量表示。
简单的使用r+引号(" ",’ ')引导latex语句,python就可以解析, 例如r'x_{a,b}^{m,n} \in \mathbb{R}^{h\times w\times c}'

Simple Examples

这里简单示例,一个拼凑的绘图例子。

Code

import matplotlib.pyplot as plt

plt.figure(figsize=(7,6),dpi=200)
plt.grid()

X=[3,5,7,9,11,13,15,17]
Y_1=[100,96,92,96,100,96,92,96]
Y_2=[96,92,96,100,96,92,96,100]

plt.plot(X,Y_1,label=r"$x_{a,b}^{m,n}$",marker='v',markersize=8,linestyle='-',color='dodgerblue')
plt.plot(X,Y_2,label=r'$x_{a,b}^{m,n} \in \mathbb{R}^{h\times w\times c}$',marker='o',markersize=8,linestyle='-',color='darkorange')

font1={'family' : 'Times New Roman', 'size': 12}
font2={'family' : 'Times New Roman', 'size': 16}

plt.ylabel(r"$x_{a,b}^{m,n}$",fontdict=font2)
plt.xlabel(r"$x_{a,b}^{m,n}$",fontdict=font2)

ax=plt.gca()
xlabel=[r'${3\times 3}$',r'${5\times 5}$',r'${7\times 7}$',r'${9\times 9}$',r'${11\times 11}$',r'${13\times 13}$',r'${15\times 15}$',r'${17\times 17}$']
ylabel=[r'$90$',r'$92$',r'$94$',r'$96$',r'$98$',r'$100$']

plt.tick_params(labelsize=11)
labels = ax.get_xticklabels() + ax.get_yticklabels()
[label.set_fontname('Times New Roman') for label in labels]

plt.xticks(range(3,19,2),labels=xlabel)
plt.yticks(range(90,102,2),labels=ylabel)
plt.legend(loc='lower right',prop=font1)

plt.tight_layout()
plt.show()

Output

=Code Output Code Output

可以看到的是,这个example中legend、label和tick都嵌入了latex语句,其实使用plt.text()函数在图片正体中也可以嵌入latex,这个以后用到了再进行总结。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐