"pythonic生物人"的第94篇分享

本文介绍如何在Matplotlib中使用LaTeX 公式和符号Python如何生成LaTeX数学公式

本文速览

本文速览1、Matplotlib中使用LaTeX 公式和符号    一些配置    Matplotlib中使用Latex字符和公式2、latexify生成LaTeX 数学公式3、handcalcs生成LaTeX 数学公式4、Latex symbols对照表

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 npimport matplotlib as mplimport 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 = 500delta = 0.6X = 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 arrowax.annotate("", xy=(-delta / 2., 0.1), xytext=(delta / 2., 0.1),            arrowprops=dict(arrowstyle="", connectionstyle="arc3"))#  其它TeX symbolsax.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 mathimport 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.renderfrom scipy.integrate import quad#借助scipy.quad实现积分
%%rendera = 2b = 6n=100z = quad(f,a,b)

  • 一个混合公式,借助math模块,
from math import sqrt,cos,sin,tan,asinimport handcalcs.render
%%render#symbolicf = 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生物人

往期精彩:

Python可视化|Matplotlib39-Matplotlib 1.4W+字教程(珍藏版)

Python可视化|Matplotlib&Seaborn36(完结篇)

python 可视化_Python可视化|Matplotlib40LaTeX in Matplotlib和python相关推荐

  1. python 颜色_Python可视化|matplotlib07自带颜色条Colormap(三)

    "pythonic生物人"的第28篇分享. 感觉不错可以点个"赞"或"在看"哦. 摘要 本篇详细介绍matplotlib内置的颜色条Colo ...

  2. python 交通_Python可视化交通拥堵情况

    微信公众号:Python干货铺子 关注即可开启快乐学习Python和Matlab的大门,您还在犹豫什么~ 前言 有感兴趣的客官,您接着往下看,待我给您慢慢分解.(ps.涉及到爬虫.pyecharts. ...

  3. python版本更新_python入门学习第一天-初识Python

    初识Python Python简介 Python的历史 1989年圣诞节:Guido von Rossum开始写Python语言的编译器. 1991年2月:第一个Python编译器(同时也是解释器)诞 ...

  4. 达内python 资源_Python学习资源整理,优质Python学习资源推荐

    Python基本安装: * http://www.python.org/ 官方标准Python开发包和支持环境,同时也是Python的官方网站; * http://www.activestate.co ...

  5. python勾股定理_Python学习第128课——在Python中实现醉汉随机游走

    [每天几分钟,从零入门python编程的世界!] 这节我们在2D平面内实现随机游走.我们先把原理搞清楚,用代码实现这个原理. 原理分析: 我们想像在2D平面内有一个x轴和y轴组成的坐标系,有一个人他是 ...

  6. python如何运行一个python程序_python如何运行?第一个python小程序示范

    我们想要用python编程首先要做的就是安装一些工具,随后学会应用.那么问题来了,我们需要安装什么?python又是怎样运行的呢? 安装什么工具? 1.Python 3.6.5(我安装的,还有很多版本 ...

  7. r语言 python 股票_python r语言 股票!如何用python写出爬虫?

    python计时器问题? import time print('按下回车开始,按下 Ctrl C 暂停/停止计时.') while True: input("") starttim ...

  8. python平台_python平台(几个不错的python接单平台)

    python平台 py渠道(我国俗称大蟒蛇渠道)一种面向对象的解释性的计算机程序设计言语,也是一种功能强壮而完善的通用型言语,已经具有十多年的发展前史,成熟且稳定. Python由GuidovanRo ...

  9. python 可视化_python可视化基础

    常用的python可视化工具包是matplotlib,seaborn是在matplotlib基础上做的进一步封装.入坑python可视化,对有些人来说如同望山跑死马,心气上早输了一节.其实学习一门新知 ...

最新文章

  1. o型圈沟槽设计软件_O型圈的设计注意事项
  2. Android 解决 No static method in class La/a/a/a; or its super classes
  3. Android Telephony分析(三) ---- RILJ详解
  4. 给Java初学者的十条小建议,快来收藏吧
  5. api 获取网络使用情况_您的API是什么情况?
  6. 60、二叉搜索树的第k个结点
  7. 对抗神经机器翻译:GAN+NMT 模型,中国研究者显著提升机翻质量
  8. java teechart怎么用_TeeChart for Java
  9. laravel5.5通过yansongda/pay组件实现支付宝电脑网站支付
  10. C++期末课程设计——宾馆客房管理系统(详细报告+源代码+详细注释)(另附加“25+”C++C语言期末课程设计系统下载地址)
  11. java微信主动推送消息_利用java开发微信实现微信主动推送消息实例
  12. 《HarmonyOS开发 - 小凌派-RK2206开发笔记》第3章 应用开发
  13. tumblr_如何制作私人Tumblr博客
  14. 基于区域和基于边缘的图像分割
  15. CSS3中颜色渐变色彩
  16. 为CIFAR图片分类模型添加BN
  17. 仙剑奇侠传7御灵有什么用?御灵的作用与培养策略
  18. 信创操作系统--统信UOS桌面版(登录与激活统信:直接登录、远程登录、锁屏、电源管理、激活)
  19. puppy linux 版本,Puppy Linux 8.0 发布,轻量级发行版
  20. VueJS 基础之组件

热门文章

  1. PyTorch nn.Module 一些疑问
  2. 1.1 回归问题-机器学习笔记-斯坦福吴恩达教授
  3. Android4.1 触摸屏(TP)划线曲折、不圆润的解决办法
  4. 【工具】PlatformIO终于能用了,arduino大型项目开发环境PIO,编辑器+编译器+调试全功能...
  5. 16位cpu 移位处理
  6. 连接器篇(一) 低频系列
  7. NetCDF Overview
  8. Cuckoo Hashing的应用及性能优化
  9. Spring框架bean的注解管理方法之一 使用注解生成对象
  10. 《ASP.NET MVC企业实战》(二) MVC开发前奏