text,usetex = true设置也会渲染轴标签

时间:2013-09-11 11:17:53

标签: python matplotlib tex

我今天尝试在图中渲染一些TeX,但它没有用。我意识到,matplotlibrc文件中的text.usetex设置为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()])

产地:

enter image description here

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

enter image description here

1 个答案:

答案 0 :(得分: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")

enter image description here

希望有所帮助!