web-dev-qa-db-fra.com

Taper des lettres grecques, etc. dans Python tracés

Je dois taper des lettres grecques et le symbole Angstrom dans les étiquettes des axes d'un complot. Donc par exemple

fig.gca().set_xlabel("$wavelength\, (Angstrom)$")
fig.gca().set_ylabel("$lambda$")

sauf que je veux réellement "Angstrom" et "lambda" remplacés par des symboles réels. Comment dois-je faire cela? Merci!

36
rferdinand

Vous pouvez non seulement ajouter des chaînes brutes à matplotlib, mais vous pouvez également spécifier la police dans matplotlibrc ou localement avec:

from matplotlib import rc

rc('font', **{'family':'serif','serif':['Palatino']})
rc('text', usetex=True)

Cela changerait votre police serif latex. Vous pouvez également spécifier le sans-serif Helvetica comme si

rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})

Les autres options sont cursive et monospace avec leurs noms de police respectifs. Votre étiquette serait alors

fig.gca().set_xlabel(r'wavelength $5000 \AA$')

Si la police ne contient pas de symbole Angstrom, vous pouvez utiliser \mathring{A}

23
BandGap

Vous devez créer les chaînes raw et utiliser latex :

fig.gca().set_ylabel(r'$\lambda$')

À partir de matplotlib 2.0, la police par défaut supporte la plupart des alphabets occidentaux et peut simplement faire

ax.set_xlabel('λ')

avec unicode.

45
tacaswell

Si vous voulez avoir une chaîne normale devant la lettre grecque, assurez-vous que vous avez le bon ordre:

plt.ylabel(r'Microstrain [$\mu \epsilon$]')
9
Frelm

Python 3.x: les petites lettres grecques sont codées de 945 à 969 donc alpha est chr(945), oméga est chr(969) donc saisissez simplement

print(chr(945))

la liste des petites lettres grecques dans une liste:

greek_letterz=[chr(code) for code in range(945,970)]

print(greek_letterz)

Et maintenant, alpha est greek_letterz[0], la bêta est greek_letterz[1], a.s.o

5
Arpad Kosa

Pourquoi ne pas simplement utiliser les caractères littéraux?

fig.gca().set_xlabel("wavelength, (Å)")
fig.gca().set_ylabel("λ")

Vous devrez peut-être ajouter ceci au fichier si vous utilisez python 2:

# -*- coding: utf-8 -*-
from __future__ import unicode literals  # or use u"unicode strings"

Il peut être plus facile de définir des constantes pour les caractères difficiles à saisir sur votre clavier.

ANGSTROM, LAMDBA = "Åλ"

Ensuite, vous pouvez les réutiliser ailleurs.

fig.gca().set_xlabel("wavelength, (%s)" % ANGSTROM)
fig.gca().set_ylabel(LAMBDA)
2
Håken Lid