4

这是我的第一个问题,我是 python 的菜鸟。所以可能会有更多的关注......

我想用 matplotlib 创建一个图形。在标签中,我想包括一个涉及下标的化学式(我认为上标也是如此......)。

无论如何,我不知道标签应该是什么样子。

import numpy as nu
import pylab as plt

x = nu.array([1,2,3,4])
y = nu.array([1,2,3,4])

plt.plot(x,y, label='H2O')
plt.legend(loc=1)
plt.show()

好的,这给了我一个标签为“H2O”的情节。如何像化学式一样在标签中下标“2”?

我搜索了网络,但我还没有找到任何有用的东西。

我想我可以使用

from matplotlib import rc
rc['text', usetex=True]

但我不想使用它(我知道如何使用 LaTeX,但我不想在这里)。

另一种选择是:

label='H$_2$O'

但这会改变字体(数学)。

必须有一种方法,matplotlib-legends 中的下标是如何工作的?

非常感谢!

4

1 回答 1

3

尝试更改此行

plt.plot(x,y, label='H2O')

为了这:

plt.plot(x,y, label='$H_2O$')

它以字体数学显示。

或者您也可以使用 unicode 字符: 2 (0xE2 / 2)

plt.plot(x,y, label=u'H₂O')

或者改为:

plt.plot(x,y, label=u"H\u2082O")

请注意,unicode 字符串被标记为 u"" 而不是 ""。

于 2013-06-16T23:01:59.050 回答