如何使用matplotlib的LaTeX格式化程序格式化浮点数?

时间:2013-06-25 20:19:37

标签: python matplotlib tex python-2.4

我的python脚本中有一个数字,我想用它作为matplotlib中一个情节标题的一部分。是否有一个函数将float转换为格式化的TeX字符串?

基本上,

str(myFloat)

返回

3.5e+20

但我想要

$3.5 \times 10^{20}$

或者至少对于matplotlib来格式化float,就像格式化第二个字符串一样。我也使用python 2.4,因此特别赞赏在旧版本中运行的代码。

3 个答案:

答案 0 :(得分:9)

使用旧式格式:

print r'$%s \times 10^{%s}$' % tuple('3.5e+20'.split('e+'))

采用新格式:

print r'${} \times 10^{{{}}}$'.format(*'3.5e+20'.split('e+'))

答案 1 :(得分:4)

您可以执行以下操作:

ax.set_title( "${0} \\times 10^{ax.set_title( "$%s \\times 10^{%s}$" % ('3.5','+20'))
}$".format('3.5','+20'))

旧样式:

{{1}}

答案 2 :(得分:1)

安装num2tex软件包:

pip install num2tex

并将标题格式设置为:

ax.set_title('${}$'.format(num2tex(3.5e20)))

或使用_repr_latex_()方法:

ax.set_title(num2tex(3.5e20)._repr_latex_())

这会给你同样的东西。

num2tex继承自str,因此可以像使用字符串一样使用format函数:

ax.set_title('${:.2e}$'.format(num2tex(3.5e20)))

免责声明:我(最近)创建了num2tex。它对我的工作流程非常有效,我现在正尝试从可能对它感兴趣的其他人那里获得反馈。