41

matplotlib您可以通过以下方式使轴标签的文本变为粗体

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

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

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

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

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

以下 LaTeX 命令似乎也没有任何效果

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

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

4

6 回答 6

38

不幸的是,您不能使用粗体字体加粗符号,请参阅tex.stackexchange 上的这个问题

正如答案所暗示的,您可以使用\boldsymbol粗体 phi:

r'$\boldsymbol{\phi}$'

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

matplotlib.rc('text', usetex=True)
matplotlib.rcParams['text.latex.preamble']=[r"\usepackage{amsmath}"]
于 2013-01-14T19:01:59.847 回答
17

如果您打算在整个情节中始终使用粗体字体,最好的方法可能是启用乳胶并添加\boldmath到您的序言中:

# 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']

然后你的轴或图形标签可以有任何数学乳胶表达式,并且仍然是粗体:

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

但是,对于不是数学的标签部分,您需要将它们显式设置为粗体:

plt.ylabel(r'\textbf{Counts of} $\lambda$'}
于 2013-04-15T15:46:40.627 回答
12

如果有人像我一样从谷歌偶然发现这个,另一种不需要调整 rc 序言(并且与非乳胶文本冲突)的方法是:

ax.set_ylabel(r"$\mathbf{\partial y / \partial x}$")
于 2020-05-14T14:52:54.703 回答
0

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

于 2017-06-12T18:26:33.377 回答
0

使用 LaTeX 排版图形中的所有文本时,您可以使用以下命令将“普通”(非方程式)文本加粗\textbf

ax.set_title(r"\textbf{some text}")
于 2021-06-11T09:37:38.377 回答
0

这些解决方案都不适合我,我惊讶地发现如此简单的事情却如此令人愤怒。最后,这对我的用例有用。我建议调整它以供您自己使用:

plt.suptitle(r"$ARMA({0}, {1})$ Multi-Parameter, $\bf{{a}}$, Electrode Response".format(n_i, m), fontsize=16)

{0}and指的{1}是提供给format方法的位置参数,意思0是指变量n_i1指变量m

注意:在我的设置中,由于某种原因,\textbf它不起作用。我读过\bfLaTeX 中不推荐使用的地方,但对我来说这是有效的。

于 2021-08-10T22:38:34.487 回答