これは、この質問への部分的なクロスポストです。
これが私のコードの最小限の例です:
import matplotlib.pyplot as plt
x = [0.0, 0.25, 0.5, 0.75, 1.0]
y = [7.0, 3.0, 5.0, 1.0, 0.0]
II = 2
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y)
# un-comment title as needed:
#plot_title = r"A$_" + str(II) + r"$"
#plot_title = "A$_" + str(II) + "$"
plot_title = (r"A$_%s$" % (str(II)))
print plot_title
plt.title(plot_title)
plt.show()
同じplot-title-stringには3つの異なるバージョンがあります。上記print plot_title
は、それぞれの場合の正しい生の文字列を示しています。
A$_2$
ただし、これらのアプローチはいずれも、図に正しい文字列を示していません(使用するバックエンドとは関係ありません)。図の出力は、入力整数値と出力の間のこの関係を示しています。
$0$ -> E
$1$ -> £
$2$ -> N
$3$ -> ®
$4$ -> X
$5$ -> ¸(cedille)
$6$ -> b
$7$ -> ¿
$8$ -> j
$9$ -> 3
私はpython2.6.6とmatplotlib0.99.1.1を使用しています-これらのバージョンを制御することはできず、それらを使用する必要があります。
目的の出力を取得するには、入力をどのように変更する必要がありますか?
編集
この質問/回答に触発されて、システムが知っているさまざまなフォントをすべて試しました。
import matplotlib.font_manager as font_manager
for i in range(0,len(sorted(font_manager.findSystemFonts()))):
plt.rcParams['font.family'] = os.path.basename(sorted(font_manager.findSystemFonts())[i])[:-4]
そして、各フォントと上記の例のプロットを生成しました。テキストのフォントは異なりますが、気になる下付き文字の1つ$_2$
は変更されず、常に。として表示されていましN
た。
編集
2matplotlib1.3.0にアップグレードしましたが、問題は解決しました。これは、バージョン0.99.1.1に関係していると私に思わせ
ます。私にとって、これはまだ満足のいくものではありません。なぜこのように動作していたのかを知りたかったからです。
編集3
私はこの質問に出くわしました:Pythonプロットでの上付き文字答えは、問題がの代わりに
使用することから発生する可能性があることを示唆しています。
残念ながら、この場合、これによって出力が変更されることはありませんでした。A$_2$
$A_2$