基于循环计数器的python matplotlib轴标签下标



我使用python和matplotlib生成图形输出。我正在一个循环中创建多个图,并希望循环计数器用作y轴标签上的索引。如何使循环计数器(一个变量)显示为下标?

这是我的:

axis_ylabel = plt.ylabel(u"u03b1 [u00b0]", rotation='horizontal', position=(0.0,0.9))

导致:

α[°]

(我使用unicode而不是特克斯,因为dvipng在这个系统上不可用。)

我想要这样的东西:

for i in range(1,3):  
  axis_ylabel = plt.ylabel(u"u03b1" + str(i) + u" [u00b0]", rotation='horizontal', position=(0.0,0.9))

毫不奇怪,这给出了:

α1[°]
α2[°]

我真正想要的是数字是下标。如何将转换为字符串与创建下标的命令结合起来?在unicode环境中无法识别包含"_"以生成下标。此外,我仍然需要python/matplotlib来识别这个下标命令应该影响以下变量
有什么想法吗?

编辑

我走了这么远:

axis_ylabel = plt.ylabel(u"u03b1" + r"$_" + str(i) + r"$" + u" [u00b0]", rotation='horizontal', position=(0.0,0.9))  

--这会产生一个下标字符。但是,它不是整数值的转换,而是一个不同的符号。

编辑2
我使用的是python 2.6.6和matplotlib 0.99.1.1。在r"$<>$"中的<>处插入任何类型的字符串都不会导致该字符串的显示,而是一个完全不同的字符。我已将此问题作为新问题发布。

Matplotlib提供了自己的数学表达式引擎,称为mathtext
来自文件:

请注意,您不需要安装TeX,因为matplotlib提供自己的TeX表达式解析器、布局引擎和字体。

因此,也许可以尝试使用以下方法:

for i in range(1,3):
    plt.ylabel(
           r"$alpha_{:d} [degree]$".format(i),
           rotation='horizontal',
           position=(0.0,0.9))

您也可以在mathtext:中使用Unicode

如果一个特定的符号没有名称(许多STIX字体中更模糊的符号),Unicode字符也可以使用:

 ur'$u23ce$'

相关内容

  • 没有找到相关文章

最新更新