it-swarm.com.de

Fettschrift für LaTeX-Achsenbeschriftung in Matplotlib

In matplotlib können Sie den Text einer Achsenbeschriftung fett hervorheben

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

Sie können LaTeX auch mit dem rechten Backend verwenden

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

Wenn Sie sie jedoch kombinieren, ist der Mathetext nicht mehr fett

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

Die folgenden LaTeX-Befehle scheinen auch keine Wirkung zu haben

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

Wie kann ich einen $\phi$ in meiner Achsenbeschriftung setzen?

24
Hooked

Symbole mit der Fettschrift können leider nicht fett gedruckt werden, siehe diese Frage auf tex.stackexchange. 

Wie aus der Antwort hervorgeht, können Sie \boldsymbol verwenden, um den Code in Fettdruck darzustellen:

r'$\boldsymbol{\phi}$'

Sie müssen amsmath in die TeX-Präambel laden:

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

Wenn Sie beabsichtigen, Schriftarten durchgehend in der gesamten Grafik durch Fettdruck hervorzuheben, empfiehlt es sich, Latex zu aktivieren und der Präambel \boldmath hinzuzufügen:

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

Dann können Ihre Achsen- oder Figurenbeschriftungen einen beliebigen mathematischen Latexausdruck haben und trotzdem fett sein:

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

Für Teile von Beschriftungen, die nicht mathematisch sind, müssen Sie sie jedoch explizit fett setzen:

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

Als diese Antwort Latex auf Python:\Alpha und\Beta funktionieren nicht? weist darauf hin. Möglicherweise liegt ein Problem mit \b vor, sodass \boldsymbol möglicherweise nicht wie erwartet funktioniert. In diesem Fall können Sie Folgendes verwenden: '$ \\\boldsymbol{\\\beta} $' in Ihrem Python-Code. Vorausgesetzt, Sie verwenden die Präambel plt.rcParams['text.latex.preamble']=[r"\usepackage{amsmath}"]

0
CJD