2017-12-20 22 views
0

私のコードを毎回実行する際に、y軸のラベルがプロットごとに多少異なる多くのプロットを作成しています。私のコードは長いので、同じラベルの部分が先験的に分かるように、すべてのプロットを1回の実行で作成することを好みます。私はformat()関数をPythonで使用して、この既知の値が与えられた各プロットのラベルを印刷しようとしています。私はAxesのラベルの中にラテックス記法を使用しているので、この問題の解決方法はわかりません。引数がformat()関数に渡される変数である場合、プロットのy軸にラベルを付ける方法は?

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

エラー:

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

ValueError: unexpected '{' in field name

答えて

1

、二重にする必要がありますフォーマットインジケータとして使用されてされていない各{と}。また、バックスラッシュをエスケープする必要があります。

>>> 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

これは素晴らしいレッスンです。ありがとう、 – Allan

関連する問題