如何消除这些图像伪影(使用LaTeX的matplotlib)

3
运行以下最小示例时,LaTeX渲染的表达式中会出现奇怪的J形状伪影。
import matplotlib.pyplot as plt
from matplotlib import rc

rc('font',**{'family':'serif','serif':['Times']})
rc('text', usetex=True)
rc(('xtick','ytick','axes'), labelsize=12.0)
rc(('legend'), fontsize=8.0)

fig=plt.figure(figsize=(4,3))
ax1 = fig.add_subplot(111)

ax1.plot([0,1],[0,1],label=r'$\propto x^1$')
ax1.set_xlabel(r'$x$')
ax1.set_ylabel(r'$\sum_i \chi_i$')

ax1.legend()

fig.tight_layout()
plt.savefig('minimal.pdf')

输出: minimal example 我该如何摆脱它们?

3
可能是因为你的系统上没有类似于“Times”字体且带有适当符号的字体。如果删除设置字体族的第一个“rc”行会发生什么呢?(就我个人而言,这个例子在我的系统上完美运行。我猜想“'serif':['Times']”会让你得到 Times New Roman 字体,但它没有正确的符号。) - Joe Kington
1个回答

1
如Joe Kington在他的评论中指出,摆脱伪像的方法是使用具有正确符号的字体。
在这个简单的例子中,去掉rc('font',**{'family':'serif','serif':['Times']})即可解决问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接