2012-09-11 16 views
5

私はfloatのリストをグラフ化するためにMatplotlibを使用しています。リストの浮動小数点数が100の場合、グラフに適切な色が表示されます。しかし、リストが785浮動している場合は、それは黒色だけを表示します。ここにコードがあります。Matplotlib - なぜ棒グラフの線の色が黒ですか?

import numpy as np 
import matplotlib.pyplot as plt 
import Image 

Consensus = [] 
Prediction = [] 
Final = [] 
for line in open('1.out').readlines(): 
    words = line.split() 
    Consensus.append(float(words[10])) 
    Prediction.append(int(words[11])) 

for i,j in zip(Consensus,Prediction): 
    Final.append(i*j) 

max_score = 3 
length = 785 
ind = np.arange(length) # the x locations for the groups 
width = 1  # the width of the bars: can also be len(x) sequence 

p1 = plt.bar(ind, Consensus, width, color='red') 
p2 = plt.bar(ind, Final, width, color='blue') 

plt.ylabel('Scores') 
plt.title('Scores by group and gender') 
plt.xticks(np.arange(0,length,50)) 
plt.yticks(np.arange(0,max_score,0.2)) 
plt.savefig('testplot.png') 
Image.open('testplot.png').save('testplot.jpg','JPEG') 

これは、リストの長さが785の場合のプログラムの画像です。 ​​

これは、リストの長さが99の場合です。 This is when the the list is 99 in length.

ファイルがここにあります - http://pastebin.com/HhPhgPDG

あなたは他のケースを確認するために、このファイルの最初の100行をコピーだけで変更することができます。長さ変数をファイル内の行数に変更する必要があります。

ありがとうございました。

答えて

24

バーの罫線は黒です。それはあなたが非常に多くのバーを持っているとき、彼らは非常に狭くなり、境界線が一緒に茂っている可能性があるので、あなたは色の内側ではなく、境界線を参照してください。グラフが拡大表示されているかどうか確認してください。また、edgecolor='none'引数をbarに渡して、枠線を削除することもできます。

1

バーが非常に濃くなりすぎて、境界線のみが表示されます。彼らは黒いので、主に黒く見えます。これを解決する2つの方法:

a)は、あなたのバーの幅

Bを増やす)あなたのバー

の境界線を削除
関連する問題