python – 在matplotlib标签中订阅文本

这是我的第一个问题,我是
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中的下标如何工作?

非常感谢!

最佳答案 尝试更改此行

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

为了这:

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

它显示字体数学.

或者你也可以使用unicode字符:²(0xE2 /₂)

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

或者代之以:

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

请注意,unicode字符串标记为u“”而不是“”.

点赞