I have a number in my python script that I want to use as part of the title of a plot in matplotlib. Is there a function that converts a float to a formatted TeX string?
You can do something like:
ax.set_title( "${0} \\times 10^{{{1}}}$".format('3.5','+20'))
in the old style:
ax.set_title( "$%s \\times 10^{%s}$" % ('3.5','+20'))
Install the num2tex package:
pip install num2tex
and format your title as:
ax.set_title('${}$'.format(num2tex(3.5e20)))
or use the _repr_latex_()
method:
ax.set_title(num2tex(3.5e20)._repr_latex_())
which will give you the same thing.
num2tex
inherits from str
so the format
function can be used as you would use it for a string:
ax.set_title('${:.2e}$'.format(num2tex(3.5e20)))
Disclaimer: I (very recently) created num2tex
. It works well for my workflow and I am now trying to get feedback from others who might be interested in using it.
With old stype formatting:
print r'$%s \times 10^{%s}$' % tuple('3.5e+20'.split('e+'))
with new format:
print r'${} \times 10^{{{}}}$'.format(*'3.5e+20'.split('e+'))