2012-11-12 11 views
24

Potrzebuję wpisać litery greckie i symbol Angstromu w etykietach osi na wykresie. Na przykład:Pisanie greckich liter itp. W polach Python

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

oprócz tego, że faktycznie chcę, aby "Angstrom" i "lambda" zostały zastąpione rzeczywistymi symbolami. Jak mam to zrobić? Dzięki!

Odpowiedz

16

Nie tylko można dodać surowe ciągi do matplotlib ale można również określić czcionkę w matplotlibrc lub lokalnie z:

from matplotlib import rc 

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

Byłoby to zmienić czcionkę serif lateksową. Można również określić Helvetica bezszeryfowej jak tak

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

Inne opcje są cursive i monospace z ich nazwami czcionek. Etykieta będzie wówczas

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

Jeśli czcionka nie dostarcza symbol angstrom można spróbować użyć \mathring{A}

+0

Funkcja Angstrom nie jest zadowalająca z tą opcją, ponieważ pojawia się kursywą. Wygląda na to, że $ \ text {\ AA} $ działający w lateksie działa tutaj. Również powinna istnieć opcja, która zachowa czcionkę użytą dla tych znaków. Jak to zrobić? – leandro

+0

Możesz użyć litery Å zamiast dedykowanego symbolu Ångström (Å), ponieważ bardzo niewiele czcionek zawiera drugie, a większość z nich używa identycznych glifów dla obu. https://en.wikipedia.org/wiki/%C3%85#Symbol_for_.C3.A5ngstr.C3.B6m –

6

Jeśli chcesz tho mają normalny ciąg frontem do greckiej litery upewnij się, że masz odpowiedniej kolejności:

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

Pythona 3.x: małej greckiej litery są kodowane przez 945 969 tak alpha chr(945) omega jest chr(969) więc wystarczy wpisać

print(chr(945)) 

listę małych liter greckich na liście:

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

print(greek_letterz) 

A teraz alfa jest greek_letterz[0], beta jest greek_letterz[1], Aso

2

Dlaczego nie wystarczy użyć dosłowne postacie?

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

Być może trzeba dodać do tego pliku, jeśli używasz Pythona 2:

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

To może być łatwiejsze do definiowania stałych dla znaków, które nie są łatwe do pisania na klawiaturze.

ANGSTROM, LAMDBA = "Åλ" 

Następnie można je ponownie użyć w innym miejscu.

fig.gca().set_xlabel("wavelength, (%s)" % ANGSTROM) 
fig.gca().set_ylabel(LAMBDA) 
Powiązane problemy