2

Python と Pyplot を使用して、プロット ラベルの 1 つを次のようにしました。

plt.ylabel('$\mathrm{\dot{\nu}}$ ($\mathrm{10^{-16} s^{-2}}$)', fontsize=16)

次に、10^-16 というラベルの代わりに、ラベルを 10^-"power" にしたいと思いました。ここで、power はコード内にある変数です。

コードを次のように調整しました。

plt.ylabel('$\mathrm{\dot{\nu}}$ ($\mathrm{10^{-{0}} s^{-2}}$)'.format(power), fontsize=16

しかし、次のエラーが表示されます。

KeyError: '\\dot{\\nu}'

すべての中かっこのために「power」をいつ置き換えたいかがわからないエラーのようですが、修正方法がわかりません。

4

3 に答える 3

2

古い形式の構文を使用して、これらすべてをバイパスできます。

>>> "%d, %d, %d" % (2, 2 ,4)
'2, 2, 4'
>>> 

あなたの場合:

>>> '$\mathrm{{\dot{{\nu}}}}$ ($\mathrm{{10^{{-%d}} s^{{-2}}}}$)' % 2
'$\\mathrm{{\\dot{{\nu}}}}$ ($\\mathrm{{10^{{-2}} s^{{-2}}}}$)'
>>> 

文字列の使用:

>>> "%s world" % ('hello')
'hello world'
>>> 
于 2013-10-14T22:49:04.910 に答える
2

すべての文字をエスケープする必要があります{— <code>.format() はそれらを特別なものとして扱います:

>>> '{0}'.format('foo')
'foo'
>>>
'{{{0}}}'.format('foo')  # => '{foo}'
'{foo}'

また

>>> power = 3
>>> '$\mathrm{{\dot{{\nu}}}}$ ($\mathrm{{10^{{-{0}}} s^{{-2}}}}$)'.format(power)
'$\\mathrm{\\dot{\nu}}$ ($\\mathrm{10^{-3} s^{-2}}$)'
于 2013-10-14T22:44:13.153 に答える
1

次のように、フォーマット文字列の{andをエスケープする必要があります。}

'$\mathrm{{\dot{{\nu}}}}$ ($\mathrm{{10^{{-{0}}} s^{{-2}}}}$)'
于 2013-10-14T22:44:23.467 に答える