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 相关文章推荐
Python3实现连接SQLite数据库的方法
Aug 23 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
Python实现的密码强度检测器示例
Aug 23 Python
利用Python如何生成hash值示例详解
Dec 20 Python
在VS Code上搭建Python开发环境的方法
Apr 06 Python
浅析Python pandas模块输出每行中间省略号问题
Jul 03 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
详解Python time库的使用
Oct 10 Python
python求质数列表的例子
Nov 24 Python
python+opencv3生成一个自定义纯色图教程
Feb 19 Python
python上selenium的弹框操作实现
Jul 13 Python
python热力图实现简单方法
Jan 29 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
深入解析phpCB批量转换的代码示例
2013/06/27 PHP
php输出图像的方法实例分析
2017/02/16 PHP
jquery实现手机发送验证码的倒计时代码
2014/02/12 Javascript
jQuery中阻止冒泡事件的方法介绍
2014/04/12 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
jquery validate和jquery form 插件组合实现验证表单后AJAX提交
2015/08/26 Javascript
jqGrid翻页时数据选中丢失问题的解决办法
2017/02/13 Javascript
JS鼠标3次点击事件实现代码及扩展思路
2017/09/12 Javascript
js仿微信抢红包功能
2020/09/25 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
浅谈Vue项目骨架屏注入实践
2019/08/05 Javascript
vue 实现通过vuex 存储值 在不同界面使用
2019/11/11 Javascript
js获取url页面id,也就是最后的数字文件名
2020/09/25 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
vue-router路由懒加载及实现的3种方式
2021/02/28 Vue.js
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
Python实现针对给定单链表删除指定节点的方法
2018/04/12 Python
pycharm远程linux开发和调试代码的方法
2018/07/17 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
python实现字符串和数字拼接
2020/03/02 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
CSS3教程(2):网页边框半径和网页圆角
2009/04/02 HTML / CSS
Mavi牛仔裤美国官网:土耳其著名牛仔品牌
2016/09/24 全球购物
金融专业个人求职信
2013/09/22 职场文书
供应链金融服务方案
2014/05/25 职场文书
家长学校培训材料
2014/08/20 职场文书
幼儿园新学期开学寄语
2015/05/27 职场文书
暑假打工感想
2015/08/07 职场文书
幼儿园教师培训心得体会
2016/01/21 职场文书
一篇文章带你搞懂Python类的相关知识
2021/05/20 Python
SQL实现LeetCode(180.连续的数字)
2021/08/04 MySQL
vue中控制mock在开发环境使用,在生产环境禁用方式
2022/04/06 Vue.js
python 镜像环境搭建总结
2022/09/23 Python