在matplotlib标签中订阅文本

时间:2013-06-16 22:49:46

标签: python matplotlib label output subscript

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

非常感谢!

1 个答案:

答案 0 :(得分:2)

尝试更改此行

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“”而不是“”。