【Python】Python+Matplotlib+LaTeX玩转数学公式
本文介紹如何在Matplotlib中使用LaTeX 公式和符號、Python如何生成LaTeX數學公式。
1、Matplotlib中使用LaTeX 公式和符號
一些配置
安裝兩個軟件,鏈接給出。
https://mirrors.cqu.edu.cn/CTAN/systems/windows/protext/protext-3.2-033020.zip
https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs9531/gs9531w64.exe
添加到環境變量中
以下兩句放到環境變量中。C:\Users\xx\AppData\Local\Programs\MiKTeX 2.9\miktex\bin\x64;C:\Program Files\gs\gs9.53.1\bin;
matplotlib.rcParams修改
Matplotlib中使用Latex字符和公式
mpl.rcParams['lines.linewidth']?=?1fig,?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)#上下標,上標^,下標 ax.set_ylabel(r'No.2:?$\alpha_i?>?\beta^i,rotation=45)#?#累加、累積 ax.legend((r'No.3:?$\displaystyle\sum_{i=0}^\infty?x_i,?r'No.4:?$\displaystyle\prod_{i=0}^\infty?x_i),shadow=True,?loc=(0.01,?0.52),?handlelength=1.5,?)#分數?? ax.set_title(r'No.4:?$\frac{3}{4})#二項式 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:?$\breve?a)#選個范圍 ax.text(-1.4,0.8,r'No.9:?$\widetilde{xyz})#?the?arrow ax.annotate("",?xy=(-delta?/?2.,?0.1),?xytext=(delta?/?2.,?0.1),arrowprops=dict(arrowstyle="<->",?connectionstyle="arc3"))#??其它TeX?symbols 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}{\partial?t}?+?U|\nabla?\phi|?&=&?0?"r"\end{eqnarray*}") ax.text(1,?0.9,?eq1,horizontalalignment="right",?verticalalignment="top")eq2?=?(r"\begin{eqnarray*}"r"\mathcal{F}?&=&?\int?f\left(?\phi,?c?\right)?dV,?\\?"r"\frac{?\partial?\phi?}?{?\partial?t?}?&=&?-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 數學公式
import?math import?latexify @latexify.with_latex#調用latexify的裝飾器 def?solve(a,?b,?c):return?(-b?+?math.sqrt(b**2?-?4*a*c))?/?(2*a)solve3、handcalcs生成LaTeX 數學公式
一個求積分公式,借助scipy的quad
一個混合公式,借助math模塊,
4、Latex symbols對照表
symbols爬取自網站:https://matplotlib.org/tutorials/text/mathtext.html、制作速查表。
plt.figure(dpi=400) fig?=?sns.scatterplot(x='sepal?length(cm)',y='sepal?width(cm)',data=pd_iris,style=geek[:150],#添加不同類變量按照不同marker顯示markers=[r"$"+geek[i]+"$"?for?i?in?range(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)?
參考資料
https://matplotlib.org/tutorials/text/usetex.html
https://github.com/connorferster/handcalcs
https://github.com/google/latexify_py
-END-
往期精彩回顧適合初學者入門人工智能的路線及資料下載(圖文+視頻)機器學習入門系列下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印《統計學習方法》的代碼復現專輯 AI基礎下載機器學習交流qq群955171419,加入微信群請掃碼:總結
以上是生活随笔為你收集整理的【Python】Python+Matplotlib+LaTeX玩转数学公式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java中switch参数传null会引
- 下一篇: flex弹性布局笔记