1

我今天尝试在图形中渲染一些 TeX,但它没有用。我意识到,text.usetex在 matplotlibrc 文件中设置为False. 当我添加rc('text', usetex=True)到我的脚本中时,轴标签也会呈现为 TeX,这是不可取的。我不记得在 matplotlib 1.3.0 之前必须设置它,而且我绝对不记得渲染 TeX 有任何困难。

还有其他人遇到这种行为吗?

例子:

import matplotlib.patheffects as PathEffects

# matplotlib.rc('text', usetex=True)

fig = plt.figure(figsize=(4,4))
ax = fig.add_axes([0,0,0.9,1])
ax.imshow(randn(20,20))
txt = ax.text(0.1, 0.5, r"Some \LaTeX\ $\alpha=\beta$", transform=ax.transAxes,fontsize=16)
txt.set_path_effects([PathEffects.Stroke(linewidth=3, foreground="w"), PathEffects.Normal()])

产生:

在此处输入图像描述

取消注释 `matplotlib.rc('text', usetex=True)' 行,产生:

在此处输入图像描述

4

1 回答 1

2

您的“问题”并不是真正的问题,但我假设您遇到以下问题:

您想使用乳胶字体向绘图中添加一些文本,或者只是添加数学而不使用rc('text', usetex=True)(请注意,在默认的 rcparams 文件中,它声明这会影响所有文本)。

可以这样做:

import matplotlib.pylab as plt

fig = plt.figure()
plt.annotate(r"$\mathcal{G}r \epsilon \epsilon \kappa$", xy=(5, 2), size=26)
plt.annotate(r"default font", xy=(2, 5), size=16)
plt.annotate(r"latex font", xy=(2, 7), size=20, family='computer modern roman')
plt.plot(range(10))
plt.xlabel("some string")

在此处输入图像描述

希望能有所帮助!

于 2013-09-11T17:23:11.407 回答