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读文件逐行处理的示例代码分享
Dec 27 Python
利用python将图片转换成excel文档格式
Dec 30 Python
python自定义线程池控制线程数量的示例
Feb 22 Python
PyQt5 对图片进行缩放的实例
Jun 18 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
python同时替换多个字符串方法示例
Sep 17 Python
python paramiko远程服务器终端操作过程解析
Dec 14 Python
Python获取对象属性的几种方式小结
Mar 12 Python
python中for in的用法详解
Apr 17 Python
一篇文章搞懂python的转义字符及用法
Sep 03 Python
python实现腾讯滑块验证码识别
Apr 27 Python
Python学习之os包使用教程详解
Mar 21 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
德劲1104的电路分析与改良
2021/03/01 无线电
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
php 生成短网址原理及代码
2014/01/23 PHP
php简单截取字符串代码示例
2016/10/19 PHP
[原创]php实现 data url的图片生成与保存
2016/12/04 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
[原创]PHP实现生成vcf vcard文件功能类定义与使用方法详解【附demo源码下载】
2017/09/02 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
PHP基于面向对象封装的分页类示例
2019/03/15 PHP
javascript preload&amp;lazy load
2010/05/13 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
javascript实现动态表头及表列的展现方法
2015/07/14 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
jQuery使用cookie与json简单实现购物车功能
2016/04/15 Javascript
jQuery Mobile操作HTML5的常用函数总结
2016/05/17 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
使用 js 简单的实现 bind、call 、aplly代码实例
2019/09/07 Javascript
编写同时兼容Python2.x与Python3.x版本的代码的几个示例
2015/03/30 Python
Python编写简单的HTML页面合并脚本
2016/07/11 Python
使用Python对MySQL数据操作
2017/04/06 Python
详解python中的文件与目录操作
2017/07/11 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
python通过配置文件共享全局变量的实例
2019/01/11 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
纯CSS3实现Material Design效果
2017/03/09 HTML / CSS
美国大城市最热门旅游景点门票:CityPASS
2016/12/16 全球购物
小学音乐教学反思
2014/02/05 职场文书
2015年度环卫处工作总结
2015/07/24 职场文书
八年级物理教学反思
2016/02/19 职场文书
小学科学课教学反思
2016/02/23 职场文书
《飘》英文读后感五篇
2019/10/11 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python
Java完整实现记事本代码
2022/06/16 Java/Android
kubernetes集群搭建Zabbix监控平台的详细过程
2022/07/07 Servers