2016-11-15 5 views
0

私はこのキャラクターを探しています:私はmatplotlibの凡例項目に必要です。 Python 3.xには、ユニコード文字を含むstr型の機能がありますが、Python 2.7でそれを行う方法に関する貴重な情報は見つかりませんでした。Python 2.7で文字列として大文字の「delta」を書くにはどうすればよいですか?

x = range(10) 
y = [5] * 10 
z = [y[i] - x[i] for i in xrange(10)] 

plt.plot(x,z,label='Δ x,y') 
plt.legend() 
plt.show() 

UnicodeDecodeError: 'ascii' codec can't decode byte 0xce in position 0: ordinal not in range(128)

+1

は[こちら]最も多くの票と解答を見る(http://stackoverflow.com/questions/13338550/typing-greek-letters-etc-in-python-plots): 'ラベル= R '$ \デルタ$ x、y' ' – berna1111

+1

ありがとうberna!私はすでにその答えを見つけましたが、試してみるとドイツ語のエラーが出ます: "コマンド" latex "が間違っているか見つかりませんでした"(おそらくコマンドシェルのエラー? "RuntimeError:LaTeXは次の文字列を処理できませんでした: 'lp'" – offeltoffel

+0

はい、このショートカットを動作させるにはラテックスがインストールされている必要があります。しかし、私が指摘した質問(または@Dizietの偉大な答え)のシンボルを使って新しいフォントを選ぶ方法を見ることができます。 – berna1111

答えて

2

@ berna1111さんのコメントが正しいですが、Δの文字を取得するにはLaTeXの形式を使用する必要はありません。 Python 2では、u''構成(see doc here)を使用して文字列をUnicodeにする必要があります。例:

plt.plot(x,z,label=u'Δ x,y') 
+0

ありがとう、ディジエット!あなたの提案はエラーを抑制しますが、シンボルをプロットに表示することはできません。空白の矩形だけがあります。 – offeltoffel

+2

おそらく、Δ文字を持たないフォントを使用しています。 rcParams(http://matplotlib.org/users/customizing.html参照)のフォントで遊んだり、 'plt.legend(prop = {'family': 'Times New Roman'})' –

+0

のようなものを試してみてください。それ、ありがとう! – offeltoffel

関連する問題