网易首页 > 网易号 > 正文 申请入驻

想在程序里显示数学公式?Python+Matplotlib+LaTeX来搞定

0
分享至

大家好,欢迎来到 Crossin的编程教室 !

对于搞科研的小伙伴来说,数学公式是少不了的。但如何在程序运行结果里显示数学公式是一件比较让人头大的事情。

今天分享的这篇文章就来介绍一下:如何在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修改

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)

参考资料

https://matplotlib.org/tutorials/text/usetex.html
https://github.com/connorferster/handcalcs
https://github.com/google/latexify_py

感谢转发点赞的各位~

作者:pythonic生物人

来源:pythonic生物人

如需了解付费精品课程教学答疑服务

请在Crossin的编程教室内回复:666

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
比谢霆锋还颠!张柏芝大儿子恋情疑曝光,46岁大妈、辣妹都不放过

比谢霆锋还颠!张柏芝大儿子恋情疑曝光,46岁大妈、辣妹都不放过

查尔菲的笔记
2026-02-09 15:02:01
一个只会空翻的前锋?27岁五大联赛,28岁亚洲养老,30岁退役

一个只会空翻的前锋?27岁五大联赛,28岁亚洲养老,30岁退役

95帕尔马
2026-02-12 11:14:57
冬奥会第6日金牌榜,挪威断层领跑,瑞士第2美国第3,中国排第14

冬奥会第6日金牌榜,挪威断层领跑,瑞士第2美国第3,中国排第14

球盲百小易
2026-02-12 01:57:03
史诗级暴击!印尼这一刀,砍碎旧秩序,全球镍价要飞上天?

史诗级暴击!印尼这一刀,砍碎旧秩序,全球镍价要飞上天?

贩财局
2026-02-11 18:29:20
劲敌重赛让宁忠岩苦等15分钟!锁定铜牌后释放:若跌第4无法接受

劲敌重赛让宁忠岩苦等15分钟!锁定铜牌后释放:若跌第4无法接受

我爱英超
2026-02-12 06:43:02
曼联接洽德甲过人王,三大问题恐放弃引进!3000万或可签马特塔

曼联接洽德甲过人王,三大问题恐放弃引进!3000万或可签马特塔

罗米的曼联博客
2026-02-12 11:14:13
“纯中医宝宝”被全网嘲笑:孩子天崩开局,果然无知才是高危妊娠

“纯中医宝宝”被全网嘲笑:孩子天崩开局,果然无知才是高危妊娠

妍妍教育日记
2026-02-11 16:32:14
即将兑现的天赋!崛起的三年级生们!

即将兑现的天赋!崛起的三年级生们!

篮球盛世
2026-02-12 12:21:47
海哈金喜家里放前夫合照,李亚鹏对她称呼腻歪,她的回复恐能复婚

海哈金喜家里放前夫合照,李亚鹏对她称呼腻歪,她的回复恐能复婚

一娱三分地
2026-02-09 20:08:34
韩媒分析称林孝埈不被中国教练信任,单项险一轮游状态还不如孙龙

韩媒分析称林孝埈不被中国教练信任,单项险一轮游状态还不如孙龙

杨华评论
2026-02-11 21:25:01
这是干嘛呀?哎哟哟一点不害羞!

这是干嘛呀?哎哟哟一点不害羞!

太急张三疯
2026-02-12 09:53:21
更名大学!川北医学院终于升格成功!今年高考生和家长重点关注

更名大学!川北医学院终于升格成功!今年高考生和家长重点关注

狐狸先森讲升学规划
2026-02-11 23:02:47
哈马斯泄露加沙死亡人数秘密;俄外长痛批美国背弃承诺

哈马斯泄露加沙死亡人数秘密;俄外长痛批美国背弃承诺

近距离
2026-02-10 14:14:37
高铁上一女士穿貂,标价35820,吊牌清晰可见!有网友特意问客服

高铁上一女士穿貂,标价35820,吊牌清晰可见!有网友特意问客服

火山詩话
2026-02-11 07:32:33
902公里续航! 700TOPS算力, 新款小米SU7到店

902公里续航! 700TOPS算力, 新款小米SU7到店

Ai爱车
2026-02-11 22:19:30
U17国足又把对手打哭!两回合轰10球,印尼门将压哨乌龙后捂脸

U17国足又把对手打哭!两回合轰10球,印尼门将压哨乌龙后捂脸

奥拜尔
2026-02-11 21:44:47
苏菲·玛索向中国人民拜年

苏菲·玛索向中国人民拜年

环球网资讯
2026-02-10 22:19:02
为救家人来中国踢球,8年赚走1.8亿,如今返回巴西老家享受生活

为救家人来中国踢球,8年赚走1.8亿,如今返回巴西老家享受生活

秋姐居
2026-02-07 09:26:20
冬奥会26大项目收官!诞生3个赢家1个输家,谷爱凌苏翊鸣位列其中

冬奥会26大项目收官!诞生3个赢家1个输家,谷爱凌苏翊鸣位列其中

嫹笔牂牂
2026-02-12 07:59:53
排面真大!陶阳大婚,郭德纲穿1万多的休闲裤,高峰主持于谦发言

排面真大!陶阳大婚,郭德纲穿1万多的休闲裤,高峰主持于谦发言

小娱乐悠悠
2026-02-12 10:55:44
2026-02-12 12:35:00
Crossin编程教室 incentive-icons
Crossin编程教室
简单有趣的python入门
431文章数 710关注度
往期回顾 全部

科技要闻

传苹果新Siri再遇挫 多项AI功能或推迟发布

头条要闻

立陶宛总理:考虑将"台湾代表处"更名为"台北代表处"

头条要闻

立陶宛总理:考虑将"台湾代表处"更名为"台北代表处"

体育要闻

31岁首次参加冬奥,10年前她是个水管工

娱乐要闻

体操运动员坠楼涉事教练被立案调查

财经要闻

中国乳业2025年回顾:行业寒潮压顶

汽车要闻

具身机器人,能否助力理想打赢全新L9这一仗?

态度原创

健康
旅游
家居
艺术
军事航空

转头就晕的耳石症,能开车上班吗?

旅游要闻

郑州绿博园:持结婚证,免费游!

家居要闻

本真栖居 爱暖伴流年

艺术要闻

这幅草书14个字,您能认全吗?颜柳欧赵品析,唯钟欧体气节

军事要闻

特朗普:若美伊谈判失败 或再派一支航母打击群

无障碍浏览 进入关怀版