2013-06-25 3 views
5

У меня есть номер в моем скрипте python, который я хочу использовать как часть названия сюжета в matplotlib. Есть ли функция, которая преобразует float в форматированную строку TeX?Как я могу форматировать float с помощью форматирования LaTeX от matplotlib?

В основном,

str(myFloat) 

возвращает

3.5e+20 

, но я хочу

$3.5 \times 10^{20}$ 

или, по крайней мере, для Matplotlib форматирования поплавок как второй строке будет отформатирована. Я также застрял, используя python 2.4, поэтому особенно ценен код, который работает в старых версиях.

ответ

4

Вы можете сделать что-то вроде:

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

в старом стиле:

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

Есть ли у вас альтернативы для старых версий python? Я застрял с использованием 2.4, но string.format() является новым в 2.6. – Dan

+0

ok ... Я добавил! Двойная обратная косая черта важна для правильной интерпретации '\ times' в matplotlib ... –

8

со старым Stype форматирования:

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

с новым форматом:

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