2012-09-11 202 views
5

我正在使用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

您的酒吧變得如此密集,只有邊框可見。因爲它們是黑色的,所以主要看黑色。兩種可能的方法來解決這個問題:

一)增加你的酒吧

B的寬度)刪除您吧

的邊界
相關問題