Python+Matplotlib+LaTeX玩转数学公式
目录
- 1、Matplotlib中使用LaTeX公式和符号
- 一些配置
- Matplotlib中使用Latex字符和公式
- 2、latexify生成LaTeX数学公式
- 3、handcalcs生成LaTeX数学公式
- 4、Latexsymbols对照表
1、Matplotlib中使用LaTeX 公式和符号
一些配置
安装两个软件,链接给出,提取码:1234
protext-3.2-033020.zip
gs9531w64.exe
添加到环境变量中
以下两句放到环境变量中。C:\Users\xx\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64;C:\Program Files\gs\gs9.53.1\bin;
matplotlib.rcParams修改
importnumpyasnp importmatplotlibasmpl importmatplotlib.pyplotasplt plt.style.use('fivethirtyeight') mpl.rcParams['text.usetex']=True#默认为false,此处设置为TRUE
Matplotlib中使用Latex字符和公式
mpl.rcParams['lines.linewidth']=1 fig,ax=plt.subplots(dpi=120) N=500 delta=0.6 X=np.linspace(-1,1,N) ax.plot(X,(1-np.tanh(4*X/delta))/2, X,(1.4+np.tanh(4*X/delta))/4,"C2", X,X<0,"k--") ax.set_xlabel(r'No.1:$\alpha>\beta) #yFRUTq上下标,上标^,下标 ax.set_ylabel(r'No.2:$\alpha_i>\beta^i,rotation=45) ##累加、累积 ax.legend((r'No.3:$\displaystyle\sum_{i=0}^\inftyx_i,r'No.4:$\displaystyle\prod_{i=0}^\inftyx_i), shadow=True,loc=(0.01,0.52),handlelength=1.5,) #分数 ax.set_t编程客栈itle(r'No.4:$\frac{3}{www.cppcns.com4}) #二项式 ax.text(0.3,1.1,r'No.5:$\frac{5-\frac{1}{x}}{4}) #开根号 ax.text(0.8,1.1,r'No.6:$\sqrt[3]{x}) #修改字体 ##Roman、Italic、Typewriter、CALLIGRAPHY等 ax.text(-0.8,1.1,r'No.7:$\mathit{Italic}) ax.text(-0.8,1.0,r'$\mathsf{fonts}) #声调 ax.text(-1.2,1.1,r'No.8:$\brevea) #选个范围 ax.text(-1.4,0.8,r'No.9:$\widetilde{xyz}) #thearrow ax.annotate("",xy=(-delta/2.,0.1),xytext=(delta/2.,0.1), arrowprops=dict(arrowstyle="<->",connectionstyle="arc3")) #其它TeXsymbols ax.set_xticks([-1,0,1]) ax.set_xticklabels([r"No.10:$\delta$",r"$\pm$",r"$\$"],color="r",size=15) ax.set_yticks([0,0.5,1]) ax.set_yticklabels([r"No.10:$\AA$",r"$\Downarrow$","$\\odot$"],color="r",size=15) ax.text(1.02,0.5,r"$\phi$",fontsize=20,rotation=90, horizontalalignment="left",verticalalignment="center", clip_on=False,transform=ax.transAxes) #积分、微分公式 eq1=(r"\begin{eqnarray*}" r"\frac{\partial\phi}{\partialt}+U|\nabla\phi|&=&0" r"\end{eqnarray*}") ax.text(1,0.9,eq1,horizontalalignment="right",verticalalignment="top") eq2=(r"\begin{eqnarray*}" r"\mathcal{F}&=&\intf\left(\phi,c\right)dV,\\" r"\frac{\partial\phi}{\partialt}&=&-M_{\phi}" r"\frac{\delta\mathcal{F}}{\delta\phi}" r"\end{eqnarray*}") ax.text(0.18,0.18,eq2) ax.text(-1,.30,r"gamma:$\gamma$",color="r") ax.text(-1,.18,r"Omega:$\Omega$",color="b") plt.show()
2、latexify生成LaTeX 数学公式
importmath importlatexify @latexify.with_latex#调用latexify的装饰器 defsolve(a,b,c): return(-b+math.sqrt(b**2-4*a*c))/(2*a) solve
3、handcalcs生成LaTeX 数学公式
一个求积分公式,借助scipy的quad
importhandcalcs.render fromscipy.integrateimportquad#借助scipy.quad实现积分编程客栈
%%render a=2 b=6 n=100 z=quad(f,a,b)
一个混合公式,借助math模块,
frommathimportsqrt,cos,sin,tan,asin importhandcalcs.render
%%render #symbolic f=a-c**2/b+sqrt(cos(sin(b-2/c)))+tan(a/b)-asin(a/c)#Commentpart
4、Latex symbols对照表
symbols爬取自网站:https://matplotlib.org/tutorials/text/mathtext.htmhttp://www.cppcns.coml、制作速查表。
plt.figure(dpi=400) fig=sns.scatterplot(x='sepallength(cm)',y='sepalwidth(cm)',data=pd_iris, style=geek[:150],#添加不同类变量按照不同marker显示 markers=[r"$"+geek[i]+"$"foriinrange(150)],#自定义marker形状 **dict(s=320), color='#01a2d9' ) fig.legend(ncol=5, fontsize=10, loc=8, bbox_to_anchor=(0.45,1), facecolor='#eaeaea', ) sns.set(style="whitegrid",font_scale=1)
以上就是python+Matplotlib+LaTeX玩转数学公式的详细内容,更多关于Python Matplotlib数学公式的资料请关注我们其它相关文章!
精彩评论