簡體   English   中英

如何避免在matplotlib中調用乳膠(輸出到pgf)

[英]How to avoid calling latex in matplotlib (output to pgf)

我正在使用matplotlib及其pgf后端來生成包含在LaTeX Beamer文檔中的圖。 使用未定義的乳膠命令時,我會遇到麻煩。 但是對於我的應用程序,我不需要matplotlib來生成帶有乳膠的標簽或注釋,我只想要正確的pgf輸出,我將在我的投影儀文檔上調用LaTeX。 如果我要在筆記本中運行此代碼,則希望在xlabel中有一個帶有文字“ \\ si {\\ percent}”的圖。

在下面的MWE中,當我用注釋行(使用\\si{\\percent} )運行它時,matplotlib崩潰並出現了乳膠錯誤(“ unknown command 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')

有什么理由讓您猶豫是否要寫序言? 這樣做可以輕松解決。 以下對我有用:

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')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM