【发布时间】:2012-11-12 04:53:41
【问题描述】:
我需要在绘图的轴标签中键入希腊字母和埃符号。比如
fig.gca().set_xlabel("$wavelength\, (Angstrom)$")
fig.gca().set_ylabel("$lambda$")
除了我实际上想用实际符号替换“Angstrom”和“lambda”。我该怎么做?谢谢!
【问题讨论】:
标签: python matplotlib
我需要在绘图的轴标签中键入希腊字母和埃符号。比如
fig.gca().set_xlabel("$wavelength\, (Angstrom)$")
fig.gca().set_ylabel("$lambda$")
除了我实际上想用实际符号替换“Angstrom”和“lambda”。我该怎么做?谢谢!
【问题讨论】:
标签: python matplotlib
fig.gca().set_ylabel(r'$\lambda$')
从 matplotlib 2.0 开始,默认字体 supports most western alphabets 可以很简单
ax.set_xlabel('λ')
使用 unicode。
【讨论】:
如果你想在希腊字母前面有一个正常的字符串,请确保你有正确的顺序:
plt.ylabel(r'Microstrain [$\mu \epsilon$]')
【讨论】:
Python 3.x:
小希腊字母的编码从 945 到 969
所以,alpha 是 chr(945),omega 是 chr(969)
所以只需输入
print(chr(945))
列表中小希腊字母的列表:
greek_letterz=[chr(code) for code in range(945,970)]
print(greek_letterz)
现在,alpha 是 greek_letterz[0],beta 是 greek_letterz[1],a.s.o
【讨论】:
您不仅可以将原始字符串添加到 matplotlib,还可以在 matplotlibrc 或本地指定字体:
from matplotlib import rc
rc('font', **{'family':'serif','serif':['Palatino']})
rc('text', usetex=True)
这会改变你的衬线乳胶字体。您也可以像这样指定 sans-serif Helvetica
rc('font',**{'family':'sans-serif','sans-serif':['Helvetica']})
其他选项是 cursive 和 monospace 及其各自的字体名称。
您的标签将是
fig.gca().set_xlabel(r'wavelength $5000 \AA$')
如果字体不提供埃符号,您可以尝试使用\mathring{A}
【讨论】:
为什么不直接使用文字字符?
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)
【讨论】:
你可以在 python 中只使用 unicode 字符。见以下链接Unicode characters for engineers in Python .
【讨论】:
print('Omega: \u03A9') # Ω
print('Lamda: \u03BB') # λ
访问网站了解更多符号 More Symbols
【讨论】: