2

pythonとmatplotlibを使用してグラフィック出力を生成しています。ループ内に複数のプロットを作成していますが、ループカウンターをy軸ラベルのインデックスとして機能させたいと考えています。ループカウンター(変数)を下付き文字として表示するにはどうすればよいですか?

これが私が持っているものです:

axis_ylabel = plt.ylabel(u"\u03b1 [\u00b0]", rotation='horizontal', position=(0.0,0.9))

その結果:

α[°]

(このシステムではdvipngを使用できないため、Texの代わりにUnicodeを使用しています。)

私はこのようなものが欲しいです:

for i in range(1,3):  
  axis_ylabel = plt.ylabel(u"\u03b1" + str(i) + u" [\u00b0]", rotation='horizontal', position=(0.0,0.9))

当然のことながら、これは次のようになります。

α1[°]
α2[°]

私が本当に欲しいのは、数字を下付き文字にすることです。文字列への変換とコマンドを組み合わせて添え字を作成するにはどうすればよいですか?添え字を生成するためのUnicode環境では、「_」を含めることは認識されません。さらに、この添え字コマンドが次の変数に影響を与えることを認識するために、python/matplotlibが必要です。
何かご意見は?

編集

私はここまで来ました:

axis_ylabel = plt.ylabel(u"\u03b1" + r"$_" + str(i) + r"$" + u" [\u00b0]", rotation='horizontal', position=(0.0,0.9))  

-これにより、下付き文字になります。ただし、これは整数値の変換ではなく、別の記号です。

編集2
私はpython2.6.6とmatplotlib0.99.1.1を使用しています。に任意の種類の文字列を挿入すると、その文字列は表示さ<>r"$<>$"ませんが、まったく異なる文字が表示されます。この問題を新しい質問として投稿しました。

4

1 に答える 1

1

Matplotlib には、 と呼ばれる独自の数式エンジンが付属していmathtextます。ドキュメント
から:

matplotlib には独自の TeX 式パーサー、レイアウト エンジン、およびフォントが付属しているため、TeX をインストールする必要はありません。

したがって、次を使用してみてください。

for i in range(1,3):
    plt.ylabel(
           r"$\alpha_{:d} [\degree]$".format(i),
           rotation='horizontal',
           position=(0.0,0.9))

で Unicode を使用することもできますmathtext:

特定のシンボルに名前がない場合 (STIX フォントのあいまいなシンボルの多くがそうであるように)、Unicode 文字も使用できます。

 ur'$\u23ce$'
于 2013-02-05T19:15:21.570 に答える