我的python脚本中有一个数字,我想用它作为matplotlib中一个情节标题的一部分。是否有一个函数将float转换为格式化的TeX字符串?
基本上,
str(myFloat)
返回
3.5e+20
但我想要
$3.5 \times 10^{20}$
或者至少对于matplotlib来格式化float,就像格式化第二个字符串一样。我也使用python 2.4,因此特别赞赏在旧版本中运行的代码。
答案 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
。它对我的工作流程非常有效,我现在正尝试从可能对它感兴趣的其他人那里获得反馈。