Python Matplotlib 与 Latex的联用(附带TeXLive安装过程)

Python Matplotlib 与 Latex的联用(附带TeXLive安装过程)

问题描述

当使用Matplotlib 进行科研画图的时候,通常与Latex的联用画出更清晰,好看的科研图。但是如果没有事先安装Latex到电脑中,那就会在程序运行中导致如下错误:

Runtimeerror: failed to process string with tex because latex could not be found

解决

Matplotlib 文档 Tex rendering With LaTex中提供了解决方案如下:
在这里插入图片描述
大概意思就是需要下载LaTex 到电脑中,而且需要有dvipng, Ghostscript 在环境变量的路径中。我在这里下载的是TeXLive,具体的安装步骤如下:

  1. 点击页面中的download,进入到Installing TeX Live over the Internet,里面有.exe文件,还有.zip文件都可以使用下载。这里使用了.exe文件。
  2. 下载完之后正常安装
    请添加图片描述
    请添加图片描述

点击Advanced 进入高级设置,同时可以更改安装路径。

请添加图片描述

点击 N. of collections: 41/41 后面的Customize, 选择需要安装的语言,按自己需求选择,通常选择chinese, US and UK english就行了。

请添加图片描述
请添加图片描述
3. 大概会需要一个小时进行安。等到安装完毕,进行env path设置。
4. 环境变量路径设置:

首先win+R 打开 Run对话框, 输入sysdm.cpl 打开系统设置
在这里插入图片描述
在这里插入图片描述
点击Advanced,找到environment variables并打开,双击进入Path

在这里插入图片描述
我的TeXLive安装在了D盘,创建如下两个路径。因为之前所提到的dvipng, Ghostscript 执行文件在texlive文件夹下的texmf-dist文件夹中,win32文件夹中存在的是matplotlib所需要调用的latex执行文件。

请添加图片描述
5. 至此,所有的都安装完毕。下面开始测试一下:

例子

运行如下demo_1:

import numpy as np
import matplotlib.pyplot as plt
import time

start_time = time.time()
# Example data
t = np.arange(0.0, 1.0 + 0.01, 0.01)
s = np.cos(4 * np.pi * t) + 2

plt.rc('text', usetex=True)
plt.rc('font', family='serif')
plt.plot(t, s)

plt.xlabel(r'\textbf{time} (s)')
plt.ylabel(r'\textit{voltage} (mV)',fontsize=16)
plt.title(r"\TeX\ is Number "
          r"$\displaystyle\sum_{n=1}^\infty\frac{-e^{i\pi}}{2^n}$!",
          fontsize=16, color='gray')
# Make room for the ridiculously large title.
plt.subplots_adjust(top=0.8)

plt.savefig('tex_demo.svg')
end_time = time.time()
used_time = end_time - start_time
print(used_time)
plt.show()

可得到如图所示:

在这里插入图片描述
demo_2

import matplotlib.pyplot as plt
import numpy as np


x = list(np.arange(0, 1, 0.01))
y = list(np.arange(0, 1, 0.01))

plt.style.use(['science', 'ieee'])

plt.xlabel('Maximum Iteration')
plt.ylabel('Fibre Volume Fraction')

plt.plot(x, y)
# 折线图的dpi一般设置为600, 而图像的dpi设置为300.
plt.savefig('test1.svg', dpi=600)
plt.show()

代码可以运行:

在这里插入图片描述

  • 27
    点赞
  • 87
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值