首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免在matplotlib中调用latex (输出到pgf)

如何避免在matplotlib中调用latex (输出到pgf)
EN

Stack Overflow用户
提问于 2019-02-08 21:16:17
回答 1查看 1.2K关注 0票数 6

我正在使用matplotlib及其pgf后端来生成我包含在LaTeX beamer文档中的绘图。当我使用未定义的latex命令时,我会遇到麻烦。但是对于我的应用程序,我不需要matplotlib来生成latex的标签或注释,我只需要一个正确的pgf输出,并且我将在我的beamer文档上调用LaTeX。如果我在notebook中运行这段代码,我希望在xlabel中只有一个带有文字“\si{\%}”的图。

在下面的MWE中,当我使用注释行(使用\si{\percent})运行它时,matplotlib崩溃并出现latex错误(‘未知命令si')。我不想用matplotlib创建前同步码,我只想要包含\si{\%}命令的pgf输出...

如果我使用双反斜杠,代码会通过,但双反斜杠也会出现在pfg输出中,因此latex无法识别该命令(我猜它会看到换行符)。

我不理解文本(‘plt.rc’,usetex=False)的“值”。我以为这会禁止调用所有LaTeX ...

代码语言:javascript
复制
import numpy as np
import matplotlib as mpl
mpl.use('pgf')
from matplotlib import pyplot as plt
from matplotlib import rc
plt.style.use('bmh')
plt.rc('pgf',rcfonts=False)
plt.rc('text', usetex=False)
x = np.linspace(0,100,101)
y = np.cos(x/100)*np.exp(-x/100)
plt.plot(x,y)
#plt.xlabel(r'value (\si{\percent})')
plt.xlabel(r'value (%)')
plt.savefig('test.pgf')
EN

回答 1

Stack Overflow用户

发布于 2019-02-08 21:52:16

有没有什么理由让你犹豫要不要加一个前言?这样做可以提供一个简单的解决方案。下面的方法对我很有效:

代码语言:javascript
复制
import numpy as np
import matplotlib as mpl

mpl.use('pgf')

from matplotlib import pyplot as plt

pgf_with_latex = {
        'text.usetex': False,
        'pgf.rcfonts': False,
        "pgf.preamble": [
                r"\usepackage{siunitx}"
                ]
}

mpl.rcParams.update(pgf_with_latex)

plt.style.use('bmh')

x = np.linspace(0,100,101)
y = np.cos(x/100)*np.exp(-x/100)
plt.plot(x,y)

plt.xlabel(r'value (\si{\percent})')
plt.savefig('test.pgf')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54593261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档