Python+Matplotlib+LaTeX玩转数学公式

 更新时间:2022年02月24日 15:09:00   作者:pythonic生物人  
这篇文章主要为大家介绍了如何在Matplotlib中使用LaTeX 公式和符号以及Python如何生成LaTeX数学公式。文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下

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修改

import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt

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)

#上下标,上标^,下标
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)

solve

3、handcalcs生成LaTeX 数学公式

一个求积分公式,借助scipy的quad

import handcalcs.render
from scipy.integrate import quad#借助scipy.quad实现积分
%%render
a = 2
b = 6
n=100
z = quad(f,a,b)

一个混合公式,借助math模块,

from math import sqrt,cos,sin,tan,asin
import handcalcs.render
%%render
#symbolic
f = a-c**2 / b + sqrt(cos(sin(b- 2 / c))) + tan(a/b) - asin(a/c) #Comment part

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)

以上就是Python+Matplotlib+LaTeX玩转数学公式的详细内容,更多关于Python Matplotlib数学公式的资料请关注脚本之家其它相关文章!

相关文章

  • python中停止线程的方法代码举例

    python中停止线程的方法代码举例

    在Python中停止线程有多种方法,包括使用全局变量、使用标志位、使用异常等,下面这篇文章主要给大家介绍了关于python中停止线程方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-05-05
  • 对django views中 request, response的常用操作详解

    对django views中 request, response的常用操作详解

    今天小编就为大家分享一篇对django views中 request, response的常用操作详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python从入门到精通(DAY 1)

    python从入门到精通(DAY 1)

    本文是此次python从入门到精通系列文章的第一篇,给大家汇总一下常用的Python的基础知识,非常的简单,但是很全面,有需要的小伙伴可以参考下
    2015-12-12
  • python字符串拼接.join()和拆分.split()详解

    python字符串拼接.join()和拆分.split()详解

    这篇文章主要为大家介绍了python字符串拼接.join()和拆分.split(),具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2021-11-11
  • pycharm激活码免费分享适用最新pycharm2020.2.3永久激活

    pycharm激活码免费分享适用最新pycharm2020.2.3永久激活

    免费为大家分享Pycharm激活码,适用最新版pycharm2020.2.3永久激活,pycharm2018,pycharm2019也可永久激活,可成功激活到2089年
    2020-11-11
  • 500行代码使用python写个微信小游戏飞机大战游戏

    500行代码使用python写个微信小游戏飞机大战游戏

    这篇文章主要介绍了500行代码使用python写个微信小游戏飞机大战游戏,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-10-10
  • 对Python 获取类的成员变量及临时变量的方法详解

    对Python 获取类的成员变量及临时变量的方法详解

    今天小编就为大家分享一篇对Python 获取类的成员变量及临时变量的方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01
  • Python批量裁剪图形外围空白区域

    Python批量裁剪图形外围空白区域

    这篇文章主要介绍了Python批量裁剪图形外围空白区域,批量裁剪掉图片的背景区域,一般是白色背景,从而减少背景值的干扰和减少存储,下面文章的具体操作内容需要的小伙伴可以参考一下
    2022-04-04
  • python网络爬虫精解之pyquery的使用说明

    python网络爬虫精解之pyquery的使用说明

    PyQuery是一个类似于jQuery的解析网页工具,使用lxml操作xml和html文档,它的语法和jQuery很像。和XPATH,Beautiful Soup比起来,PyQuery更加灵活,提供增加节点的class信息,移除某个节点,提取文本信息等功能
    2021-09-09
  • python渗透测试linux密码激活的示例

    python渗透测试linux密码激活的示例

    这篇文章主要介绍了python渗透测试linux密码激活的相关知识,通过一个crypt的示例给大家介绍的非常详细,对大家学习python渗透知识有很大的帮助,需要的朋友可以参考下
    2021-05-05

最新评论