0

Wenn ich jedes Mal meinen Code ausführe, mache ich viele Plots, deren Beschriftungen der y-Achsen von Diagramm zu Diagramm leicht variieren. Da mein Code lang ist, bevorzuge ich es, alle Plots mit einem einzigen Durchlauf zu erzeugen, so dass der Teil der Etiketten, der der gleiche ist, a priori bekannt ist. Ich versuche, format() Funktion in Python zu verwenden, um Etikett für jedes Diagramm zu drucken, das diesen bekannten Wert gibt. Da ich Latex-Notationen in den Etiketten meiner Achsen verwende, weiß ich nicht, wie ich das Problem lösen soll.Wie beschriftet man die y-Achse eines Plots, wenn das Argument eine Variable ist, die an die Funktion format() übergeben wird?

z_value = 0. 
ax.set_ylabel(r'$\frac {dN_{{abs.}}} {d [\log(m_{{sub}})]} (m_{{sub}}, z={:.1f})$'.format(z_value)) 

Fehler:

ax.set_ylabel(r'$\frac {dN_{{abs.}}} {d [\log(m_{{sub}})]} (m_{{sub}}, z={:.1f})$'.format(z_value))

ValueError: unexpected '{' in field name

Antwort

1

Sie müssen jede {} und verdoppeln die als Formatierungsanzeige nicht verwendet wird. Sie müssen auch den Backslash umgehen:

>>> x=2.5 
>>> print('Dies ist {{{}x eine Variable'.format(x)) 
Dies ist {2.5x eine Variable 

>>> print('$\\frac {{dN_{{abs.}}}} {{d [\\log(m_{{sub}})]}} (m_{{{{sub}}}}, z={:.1f})$'.format(x)) 
$\frac {dN_{abs.}} {d [\log(m_{sub})]} (m_{{sub}}, z=2.5)$ 
+0

Das ist eine großartige Lektion. Vielen Dank, – Allan

Verwandte Themen