2017-06-19 5 views
0

私はExcelシートを読んでnumpy配列(data_array)を生成しています この配列では、各行は異なるグループです(例えば:dogs、cats、birds、insects ...項目数は各Excelシートによって異なります) 各グループ(年齢、色など)ごとに9つの要素に固定されています定義されていない数の軸をプロットするMatplotlib

ここでグラフをプロットすることができます。この例では、data_Arrayの要素7のみをプロットしています。

fig, ax = plt.subplots() 
x,y = data_array.shape 

ind = np.arange(y) 
width = 1 

rects = ax.bar(ind, data_array[7], width, color='r') 

plt.xticks(ind, names, rotation=90) 
plt.ylabel('Area') 
plt.title('Normalized IS')   
plt.show() 

私は書くことができます:

rects1 = ax.bar(ind, data_array[1], width, color='r') 
rects2 = ax.bar(ind, data_array[2], width, color='r') 
. 
. 
. 
rectsx = ax.bar(ind, data_array[x], width, color='r') 

その後、私は同じチャートでそれらのすべてをプロットできます。 しかし、私が読んでいる各Excelは、要素のx数が異なっています。

私が使用してそれらをgeneretingについて考えた:

for i in range(x): 
    rects[i] = ax.bar(ind, data_array[i], width, color='r') 
が、私はエラーメッセージが表示されました。

Traceback (most recent call last):

File "", line 1, in rects[1]=ax.bar(ind, data_array[7], width, color='r') NameError: name 'rects' is not defined

各ax.barの生成方法は?

+0

"エラーメッセージが表示されました。"は役に立ちません。あなたがそれを助けるためには、完全なエラートレースバックを含める必要があります。また、コードについて質問するときには '...'を使用しないでください。 '..'が何であるか、それがエラーを引き起こすかどうかをどのように知るべきですか? – ImportanceOfBeingErnest

答えて

2

あなたは確かにこれは、互いの上に異なる行からのすべてのバーを描画します

for i in range(x): 
    ax.bar(ind, data_array[i], width, color='r') 

、ループを使用することができます。

+0

ありがとう、それは多くの助けてください。しかし、私は1つのプロットしか見ることができません。私はオーバーレイを見るだけですか? – daniel

+0

はい、互いの上にあります。あなたがそれに満足していない場合は、プロットを見たいと思う方法を正確に記述する必要があります。 – ImportanceOfBeingErnest

関連する問題