Python+Matplotlib+LaTeX玩转数学公式


Posted in Python onFebruary 24, 2022

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()

Python+Matplotlib+LaTeX玩转数学公式

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

Python+Matplotlib+LaTeX玩转数学公式

Python+Matplotlib+LaTeX玩转数学公式

Python+Matplotlib+LaTeX玩转数学公式

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)

Python+Matplotlib+LaTeX玩转数学公式

一个混合公式,借助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

Python+Matplotlib+LaTeX玩转数学公式

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+LaTeX玩转数学公式

Python+Matplotlib+LaTeX玩转数学公式

以上就是Python+Matplotlib+LaTeX玩转数学公式的详细内容,更多关于Python Matplotlib数学公式的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python 中 list 的各项操作技巧
Apr 13 Python
简单谈谈Python中的json与pickle
Jul 19 Python
对python中return和print的一些理解
Aug 18 Python
Python+Socket实现基于UDP协议的局域网广播功能示例
Aug 31 Python
python多线程socket编程之多客户端接入
Sep 12 Python
基于python实现聊天室程序
Jul 27 Python
python实现在cmd窗口显示彩色文字
Jun 24 Python
Django admin model 汉化显示文字的实现方法
Aug 12 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
Sep 25 Python
pytorch下大型数据集(大型图片)的导入方式
Jan 08 Python
基于Python的身份证验证识别和数据处理详解
Nov 14 Python
Django集成MongoDB实现过程解析
Dec 01 Python
Python语言内置数据类型
Feb 24 #Python
Python中的程序流程控制语句
Feb 24 #Python
python中对列表的删除和添加方法详解
Feb 24 #Python
通过Python把学姐照片做成拼图游戏
Python帮你解决手机qq微信内存占用太多问题
Feb 15 #Python
python flappy bird小游戏分步实现流程
Python 居然可以在 Excel 中画画你知道吗
Feb 15 #Python
You might like
php pack与unpack 摸板字符字符含义
2009/10/29 PHP
php中通过curl模拟登陆discuz论坛的实现代码
2012/02/16 PHP
浅析php变量修饰符static的使用
2013/06/28 PHP
显示程序执行时间php函数代码
2013/08/29 PHP
使用PHP备份MySQL和网站发送到邮箱实例代码
2013/11/28 PHP
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
详解PHP如何更好的利用PHPstorm的自动提示
2017/08/18 PHP
jQuery图片播放8款精美插件分享
2013/02/17 Javascript
jquery 添加节点的几种方法介绍
2013/09/04 Javascript
jQuery中DOM树操作之复制元素的方法
2015/01/23 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
2015/12/04 Javascript
Kindeditor在线文本编辑器如何过滤HTML
2016/04/14 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
BootStrap 表单控件之单选按钮水平排列
2017/05/23 Javascript
Vue.js用法详解
2017/11/13 Javascript
使用watch在微信小程序中实现全局状态共享
2019/06/03 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
JS 图片压缩原理与实现方法详解
2020/04/29 Javascript
Node Express用法详解【安装、使用、路由、中间件、模板引擎等】
2020/05/13 Javascript
vue 封装面包屑组件教程
2020/11/16 Javascript
Python实现简单的语音识别系统
2017/12/13 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
python调用并链接MATLAB脚本详解
2019/07/05 Python
Jupyter Notebook输出矢量图实例
2020/04/14 Python
北美三大旅游网站之一:Travelocity加拿大
2016/08/20 全球购物
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
就职演讲稿范文
2014/05/19 职场文书
伦敦奥运会口号
2014/06/13 职场文书
搞笑车尾标语
2014/06/23 职场文书
工作简报范文
2015/07/21 职场文书
python 遍历磁盘目录的三种方法
2021/04/02 Python
python 机器学习的标准化、归一化、正则化、离散化和白化
2021/04/16 Python
详解RedisTemplate下Redis分布式锁引发的系列问题
2021/04/27 Redis
Python爬虫进阶之Beautiful Soup库详解
2021/04/29 Python
Java中常用解析工具jackson及fastjson的使用
2021/06/28 Java/Android