簡體   English   中英

matplotlib 中 LaTeX 軸標簽的粗體字重

[英]Bold font weight for LaTeX axes label in matplotlib

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$

不幸的是,您不能使用粗體字體加粗符號,請參閱 tex.stackexchange 上的這個問題

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

r'$\boldsymbol{\phi}$'

您需要將amsmath加載到 TeX 序言中:

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

如果您打算在整個情節中始終使用粗體字體,最好的方法可能是啟用乳膠並將\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$'}

如果有人像我一樣從谷歌偶然發現這個,另一種不需要調整 rc 序言(並且與非乳膠文本沖突)的方法是:

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

當使用 LaTeX 排版圖形中的所有文本時,您可以使用\textbf使“正常”(非方程式)文本變為粗體:

ax.set_title(r"\textbf{some text}")

這些解決方案都不適合我,我驚訝地發現如此簡單的事情卻如此令人憤怒。 最后,這對我的用例有用。 我建議調整它以供您自己使用:

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

{0}{1}指的是提供給format方法的位置參數,這意味着0指的是變量n_i1指的是變量m

注意:在我的設置中,由於某種原因, \textbf不起作用。 我在某處讀到\bf在 LaTeX 中已被棄用,但對我來說這是有效的。

作為這個答案Latex on python: \alpha 和 \beta 不起作用? 指出。 您可能對\b有疑問,因此\boldsymbol可能無法按預期工作。 在這種情況下,您可以在 python 代碼中使用類似: '$ \\\boldsymbol{\\\beta} $' 如果您使用前導plt.rcParams['text.latex.preamble']=[r"\usepackage{amsmath}"]

我想做類似的事情,然后用下標'1/2'作為標簽並以粗體繪制'K'。 這在不更改任何 rc 參數的情況下工作。

plt.figure()
plt.xlabel(r'$\bf{K_{1/2}}$')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM