usetex 设置在您需要 matplotlib 的内置数学文本中不存在的 LaTeX 功能时特别有用。但它也提供了更好的排版,您不必担心数学文本中的非标准部分。
如果您比较下面的两个示例(基于this page 末尾的示例),您会发现 LaTeX 版本在数学方面做得更好,尤其是求和。此外,mathtext 不知道 \displaystyle,但会自动使用这种布局样式,这在某些情况下可能是不可取的。
就您对刻度标签字体的问题而言,我相信 matplotlib 正在使用默认的 LaTeX 数学字体作为标签。如果您尝试按照我在第二个示例中注释掉的代码行做一些事情,您应该能够得到您想要的。
如果你只是制作相对简单的情节,你应该看看tikzplotlib。它允许您以tikz 格式保存图形,以便轻松调整大小。有关详细信息,请参阅我对this 问题的回答。
数学文本版本
import numpy as np
import matplotlib.pyplot as plt
t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)
plt.plot(t,s)
plt.title(r'$\alpha_i > \beta_i$', fontsize=20)
plt.text(1, -0.6, r'$\sum_{i=0}^\infty x_i$', fontsize=20)
plt.text(0.6, 0.6, r'$\mathcal{A}\mathrm{sin}(2 \omega t)$',
fontsize=20)
plt.xlabel('time (s)')
plt.ylabel('volts (mV)')
plt.savefig('fig_mathtext.pdf')
LaTeX 版本
import numpy as np
import matplotlib.pyplot as plt
from matplotlib import rc
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
rc('text', usetex=True)
#rc('text.latex', preamble=r'\usepackage[eulergreek]{sansmath}\sansmath')
t = np.arange(0.0, 2.0, 0.01)
s = np.sin(2*np.pi*t)
figure()
plt.plot(t,s)
plt.title(r'$\alpha_i > \beta_i$', fontsize=20)
plt.text(1, -0.6, r'$\displaystyle\sum_{i=0}^\infty x_i$', fontsize=20)
plt.text(0.6, 0.6, r'$\mathcal{A}\mathrm{sin}(2 \omega t)$',
fontsize=20)
plt.xlabel('time (s)')
plt.ylabel('volts (mV)')
plt.savefig('fig_latex.pdf')