2013-06-25 13 views
5

Ich habe eine Nummer in meinem Python-Skript, die ich als Teil des Titels eines Plots in Matplotlib verwenden möchte. Gibt es eine Funktion, die einen Float in einen formatierten TeX-String konvertiert? GrundsätzlichWie kann ich einen Float mit dem LaTeX-Formatierer von Matplotlib formatieren?

,

str(myFloat) 

kehrt

3.5e+20 

aber ich will

$3.5 \times 10^{20}$ 

oder zumindest für matplotlib den Schwimmer wie der zweite String-Format formatiert werden würde. Ich bin auch fest mit Python 2.4, so wird Code, der in alten Versionen läuft besonders geschätzt.

Antwort

4

Sie können wie etwas tun:

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

im alten Stil:

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

Haben Sie Alternativen für alte Versionen von Python? Ich bin mit 2.4 fest, aber string.format() ist neu in 2.6. – Dan

+0

ok ... ich habe es hinzugefügt! Die doppelten Backslashes sind wichtig, um '\ times' korrekt in Matplotlib zu interpretieren ... –

8

Mit alter stype Formatierung:

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

mit neuem Format:

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