2012-11-12 649 views
24

我需要在图的轴标签中键入希腊字母和Angstrom符号。因此,例如在Python图中输入希腊字母等

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

除了我实际上希望“Angstrom”和“lambda”替换为实际符号。我应该怎么做?谢谢!

回答

16

您不仅可以添加原始字符串来matplotlib,但你也可以指定matplotlibrc或地方规定的字体:

from matplotlib import rc 

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

这将改变你的衬线字体乳胶。您也可以指定像这样

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

其他选项是cursivemonospace各自的字体名称的无衬线黑体。 那么你的标签会

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

如果字体不提供的埃符号,你可以尝试使用\mathring{A}

+0

Angstrom对这个选项并不满意,因为它显得斜体。在乳胶中工作的$ \ text {\ AA} $似乎在这里工作。还有一个选项保留了用于这些字符的字体。怎么做? – leandro

+0

您可以使用字母A代替专用埃符号(),因为很少有字体包含后者,最加时赛他们使用相同的字形两种,反正。 https://en.wikipedia.org/wiki/%C3%85#Symbol_for_.C3.A5ngstr.C3.B6m –

6

如果你想寿有一个正常的字符串盈希腊字母的确保您有正确的顺序:

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

的Python 3.x的: 小希腊字母从945到969 所以,α-是chr(945)编码,ω-是chr(969) 所以只需键入

print(chr(945)) 

的小希腊字母列表中的列表:

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

print(greek_letterz) 

而现在,阿尔法是greek_letterz[0],β是greek_letterz[1],ASO

2

为什么不直接使用字面字符?

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

你可能有,如果你正在使用Python 2到这个添加到文件:

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

可能更容易定义是不容易在键盘上输入的字符常量。

ANGSTROM, LAMDBA = "Åλ" 

然后,您可以在别处重复使用它们。

fig.gca().set_xlabel("wavelength, (%s)" % ANGSTROM) 
fig.gca().set_ylabel(LAMBDA)