关于python:matplotlib中LaTeX轴标签的粗体字体粗细

Bold font weight for LaTeX axes label in matplotlib

matplotlib中,可以使用

将轴标签的文本加粗

1
plt.xlabel('foo',fontweight='bold')

您也可以将LaTeX与正确的后端一起使用

1
plt.xlabel(r'$\\phi$')

但是,当您将它们组合时,数学文本不再是粗体的

1
plt.xlabel(r'$\\phi$',fontweight='bold')

以下LaTeX命令似乎也没有作用

1
2
plt.xlabel(r'$\\bf \\phi$')
plt.xlabel(r'$\\mathbf{\\phi}$')

如何在轴标签中加粗$\\phi$


不幸的是,您不能使用粗体显示粗体符号,请参阅tex.stackexchange上的此问题。

如答案所示,您可以使用\\boldsymbol来加粗phi:

1
r'$\\boldsymbol{\\phi}$'

您需要将amsmath加载到TeX序言中:

1
2
matplotlib.rc('text', usetex=True)
matplotlib.rcParams['text.latex.preamble']=[r"\\usepackage{amsmath}"]


如果您打算在整个绘图中使用一致的加粗字体,则最好的方法可能是启用乳胶并将\\boldmath添加到您的序言中:

1
2
3
4
5
# Optionally set font to Computer Modern to avoid common missing font errors
matplotlib.rc('font', family='serif', serif='cm10')

matplotlib.rc('text', usetex=True)
matplotlib.rcParams['text.latex.preamble'] = [r'\\boldmath']

然后,轴或图形标签可以具有任何数学乳胶表达式,但仍为粗体:

1
plt.xlabel(r'$\\frac{\\phi + x}{2}$')

但是,对于非数学部分的标签,您需要将其明确设置为粗体:

1
plt.ylabel(r'\\textbf{Counts of} $\\lambda$'}

如果有人像我一样偶然发现了Google,则另一种不需要调整rc前导码(并且与非胶乳文本冲突)的方法是:

1
ax.set_ylabel(r"$\\mathbf{\\partial y / \\partial x}$")

作为此答案在python上的Latex:\\\\ alpha和\\\\ beta不起作用?指出。 \\b可能有问题,因此\\boldsymbol可能无法按预期工作。在这种情况下,您可以在python代码中使用类似'$ \\\\\\boldsymbol{\\\\\\beta} $'的代码。前提是您使用序言plt.rcParams['text.latex.preamble']=[r"\\usepackage{amsmath}"]