2012-09-11 23 views
5

Tôi đang sử dụng Matplotlib để lập danh sách đồ thị của phao. Nếu danh sách của tôi dài 100 phao thì biểu đồ sẽ hiển thị các màu phù hợp. Nhưng nếu danh sách là 785 phao dài thì nó chỉ hiển thị màu đen. Đây là mã.Matplotlib - tại sao màu đường đồ thị thanh là màu đen?

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') 

Đây là hình ảnh của chương trình khi danh sách dài 785. This is the picture of the program when the list is 785 in length.

Đây là khi danh sách dài 99. This is when the the list is 99 in length.

Các tập tin có sẵn ở đây - http://pastebin.com/HhPhgPDG

Bạn có thể thay đổi chỉ cần sao chép 100 dòng đầu tiên của file này để kiểm tra đối với trường hợp khác. Bạn nên thay đổi biến độ dài thành số dòng trong tệp.

Cảm ơn.

Trả lời

24

Đường viền của các thanh màu đen. Có thể khi bạn có quá nhiều thanh, chúng trở nên rất hẹp và các đường viền dính với nhau, vì vậy bạn chỉ thấy các đường viền chứ không phải bên trong màu. Thử phóng to trên biểu đồ của bạn để xem các màu có ở đó không. Bạn cũng có thể chuyển đối số edgecolor='none' tới bar để xóa đường viền.

1

Thanh của bạn đang trở nên dày đặc đến mức chỉ có đường viền được hiển thị. Vì chúng có màu đen, bạn thấy chủ yếu là màu đen. Hai cách có thể để giải quyết này:

a) tăng độ rộng của thanh của bạn

b) loại bỏ các biên giới của thanh của bạn

Các vấn đề liên quan