59

我需要在绘图的轴标签中输入希腊字母和埃符号。所以例如

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

除了我实际上想要用实际符号替换“Angstrom”和“lambda”。我该怎么做?谢谢!

4

6 回答 6

93

您需要使字符串原始并使用latex

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

从 matplotlib 2.0 开始,默认字体支持大多数西方字母并且可以很简单

ax.set_xlabel('λ')

与 Unicode。

于 2012-11-12T04:55:27.473 回答
28

您不仅可以将原始字符串添加到 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']})

其他选项是cursivemonospace它们各自的字体名称。您的标签将是

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

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

于 2013-01-03T21:49:56.757 回答
18

如果你想在希腊字母前面有一个正常的字符串,请确保你有正确的顺序:

plt.ylabel(r'Microstrain [$\mu \epsilon$]')
于 2013-10-14T00:35:32.293 回答
13

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], aso

于 2015-09-12T07:55:10.270 回答
5

为什么不只使用文字字符?

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)
于 2016-12-04T10:29:53.183 回答
1

你可以在 python 中使用 unicode 字符。请参阅以下链接Unicode 字符用于 Python 中的工程师

于 2021-08-25T08:56:07.907 回答