Ger*_*VdE 6 python latex matplotlib pgf
我正在使用 matplotlib 及其 pgf 后端来生成包含在我的 LaTeX 投影仪文档中的绘图。当我使用未定义的 Latex 命令时遇到了麻烦。但是对于我的应用程序,我不需要 matplotlib 来生成带有乳胶的标签或注释,我只想要一个正确的 pgf 输出,我将在我的投影仪文档上调用 LaTeX。如果我在笔记本中运行此代码,我希望在 xlabel 中有一个带有文字 "\si{\percent}" 的图。
在下面的 MWE 中,当我使用注释行(使用\si{\percent})运行它时,matplotlib 因乳胶错误(“未知命令 si”)而崩溃。我不想用 matplotlib 创建序言,我只想要包含 \si{\percent} 命令的 pgf 输出......
如果我使用双反斜杠,代码会通过,但双反斜杠也会出现在 pfg 输出中,因此乳胶无法识别该命令(我猜它会看到换行符)。
我不明白 plt.rc('text', usetex=False) 的“值”。我认为这会完全禁止调用 LaTeX ......
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')
Run Code Online (Sandbox Code Playgroud)
您是否有任何理由犹豫是否要添加序言?这样做可以提供一个简单的解决方案。以下对我有用:
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')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1086 次 |
| 最近记录: |