2012-05-11 24 views
7

私は1行だけでfiglegendを印刷しようとしますが、最初の文字しか取得できません。私はプロットを作成するための次のスクリプトを持っている:Matplotlib:figlegendは最初の文字を印刷するだけです

from pylab import * 
k = plot((0, 1),(1, 1)) 
figlegend((k),('Limit'),loc='lower center') 
savefig('test.pdf') 

出力は次のとおりです。output

私が間違って何をしているのですか? (またはバグですか?)

+2

'( 'Limit')'はPythonでタプルとして解釈されません。 '( 'Limit'、)'はです。私の推測では、 '' 'Limit' ''はうまくいくはずです。 – Hooked

答えて

15

matplotlibのバグか意図的な(何らかの理由で)かどうかは分かりませんが、完全な凡例ラベルを取得するには、末尾のコンマを残す必要がありますラベルのリスト:

from pylab import * 
k = plot((0, 1),(1, 1)) 
figlegend((k),('Limit',),loc='lower center') 
savefig('test.pdf') 

の図を生成します:

full legend label

ラインとあなたのコードがあること

figlegend((k),('Limit',),loc='lower center') 

を変更

+3

これはPythonの機能です。単一要素のリストを指定するには、括弧内のスカラー値と区別するための構文が必要です。 http://docs.python.org/tutorial/datastructures.html#tuples-and-sequences –

+0

これは私がまだ出会ったPythonの変わった変わった話です。あなたがこれを見つけたことに感謝します。 – GLaDER

関連する問題