2011-10-24 12 views
1

私は、pyplotでデータにラベル付けしようとしていて、悪夢を抱いています。Pyplot - ラベルプロット

私は現在、このようなすべてのデータをプロットしています:plt.plot(data)。

データは、私は凡例を追加し、適切にデータリストの各々を標識したいサブコスト

ための総費用、及び、他の列の列を有する配列です。私は、しかし、伝説を動作させるように見えることはできません。 plt.legend(( '列1'、 '列2'など)、loc = 1)、それ以外のものは機能しませんでした。個別に各列をプロットすると、何らかの理由で正しく動作しなくなります。

お待ちしております、ありがとうございました。

EDIT:

for i in range(1,days): 
    data.append(totalCost(i)) #cost returns retVal, construction, gas, and wage 
plt.ylabel('Cost in US Dollars') 
plt.title('Economic Cost over Time') 

plt.plot(data) 
plt.legend(('Total','Construction','Gas','Wage'),loc=1) # Legend is blank 

はEDIT 2: 代わりに私のプログラム内の別の場所にコードを有するのは、私はそれと集中のすべてを再編成しました。これらの変更により、伝説が始まり、すべてが解決されたようです。私は問題は何だったのか分かりません。

plt.plot(data) 
plt.legend(('Total Cost', 'Construction Cost', 'Gas Cost','Wage Cost'),loc=0) 
plt.grid(False) 
plt.xlabel('Time (Days)') 
plt.ylabel('Cost in US Dollars') 
plt.title('Economic Cost over Time') 
print (' Close the Graph to Continue Using this Model') 
plt.show() 
+0

より完全なサンプルコードを提供できますか?私は奇妙なことにxdataとydataの割り当てに間違いがあります。 x軸は何ですか?データの最初の列は何ですか? – ianalis

+0

私はいくつかのソースを追加しました。 –

答えて

2

あなたのコード正しくはMac OS X上のmatplotlibの1.1で、凡例を表示する、こと提供:

  • はmatplotlibのは、冒頭で対話モードに置かれている:plt.ion()
  • コードがplt.show()で終了、 例えば。

Matplotlibをアップグレードすることも役立ちます。

最終的に考えられる解決方法は、実際には、それぞれの行を独自のラベル(plt.plot(<single line data>, label='Construction')など)で個別にプロットし、凡例をplt.legend(loc='best')とプロットすることです。

+0

私は64ビットコンピュータで動作するようにpython3.2と最新のmatplotlibのポートを実行しています。 –

+1

@NathanTornquist:最初に 'ion()'を試しましたか? – EOL

+0

私はまだIONを試していないし、データを自分自身にプロットすると、表示された結果はもはや正確ではない。すべての線が途中でゼロになります。 –

関連する問題