Matplotlib - 为什么条形图线条颜色是黑色的?

时间:2012-09-11 18:10:42

标签: python colors matplotlib bar-chart

我正在使用Matplotlib来绘制浮动列表。如果我的列表长度为100个浮点数,则图表会显示正确的颜色。但如果列表长785浮点数,那么它只显示黑色。这是代码。

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时,这是程序的图片。 This is the picture of the program when the list is 785 in length.

这是列表长度为99的时间。 This is when the the list is 99 in length.

该文件可在此处获取 - http://pastebin.com/HhPhgPDG

您可以更改只复制此文件的前100行以检查其他情况。您应该将length变量更改为文件中的行数。

感谢。

2 个答案:

答案 0 :(得分:24)

酒吧的边框是黑色的。有可能的是,当你有这么多酒吧时,它们会变得非常狭窄,边界会混合在一起,所以你只能看到边框,而不是彩色的内部。尝试放大图表以查看颜色是否存在。您还可以将edgecolor='none'参数传递给bar以删除边框。

答案 1 :(得分:1)

你的酒吧变得如此密集,只有边界可见。因为它们是黑色的,你会看到主要是黑色。解决这个问题的两种可能方法:

a)增加酒吧的宽度

b)删除栏的边框