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实现自动登录人人网并访问最近来访者实例
Sep 26 Python
Python Web框架Flask下网站开发入门实例
Feb 08 Python
Python探索之修改Python搜索路径
Oct 25 Python
python读取几个G的csv文件方法
Jan 07 Python
pygame库实现移动底座弹球小游戏
Apr 14 Python
解决tensorflow添加ptb库的问题
Feb 10 Python
Python 写了个新型冠状病毒疫情传播模拟程序
Feb 14 Python
python 读txt文件,按‘,’分割每行数据操作
Jul 05 Python
python入门:argparse浅析 nargs='+'作用
Jul 12 Python
python将字典内容写入json文件的实例代码
Aug 12 Python
Python 循环读取数据内存不足的解决方案
May 25 Python
python+pytest接口自动化之token关联登录的实现
Apr 06 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
【COS正片】蕾姆睡衣cos,纯洁可爱被治愈了 cn名濑弥七
2020/03/02 日漫
PHP基础教程(php入门基础教程)一些code代码
2013/01/06 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
详细分析JavaScript函数定义
2015/07/16 Javascript
原生js编写autoComplete插件
2016/04/13 Javascript
vue实现点击图片放大效果
2017/08/15 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
nodejs读取并去重excel文件
2018/04/22 NodeJs
react用Redux中央仓库实现一个todolist
2019/09/29 Javascript
python3简单实现微信爬虫
2015/04/09 Python
在Mac OS上搭建Python的开发环境
2015/12/24 Python
Python中内建函数的简单用法说明
2016/05/05 Python
Python 实现文件的全备份和差异备份详解
2016/12/27 Python
Python通过for循环理解迭代器和生成器实例详解
2019/02/16 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
Python统计时间内的并发数代码实例
2019/12/28 Python
Python如何通过百度翻译API实现翻译功能
2020/04/02 Python
Python使用cn2an实现中文数字与阿拉伯数字的相互转换
2021/03/02 Python
用gpu训练好的神经网络,用tensorflow-cpu跑出错的原因及解决方案
2021/03/03 Python
使用CSS3制作一个简单的进度条(demo)
2017/05/23 HTML / CSS
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
智能旅行箱:Horizn Studios
2018/04/30 全球购物
生物科学系大学生的自我评价
2013/12/20 职场文书
高中生操行评语
2014/04/25 职场文书
乡文化站暑期培训方案
2014/08/28 职场文书
2015年反洗钱工作总结
2015/04/25 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
个人工作决心书
2015/09/22 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
你对自己的信用报告有过了解吗?
2019/07/09 职场文书
浅谈golang package中init方法的多处定义及运行顺序问题
2021/05/06 Golang
使用JS实现简易计算器
2021/06/14 Javascript
微信小程序调用python模型
2022/04/21 Python
VUE递归树形实现多级列表
2022/07/15 Vue.js