2016-02-26 44 views
-1

我试图在Python中使用marplot.lib库绘制直方图;但是,我不断收到此错误:“AttributeError:箱必须单调增加。”使用matplot.lib绘制直方图

这是我的代码的时刻:

def draw_viz(info): 
    stars = [tup[0] for tup in info] 
    scores = [tup[1] for tup in info] 

    plt.hist(range, scores) 
    plt.show() 

中传递的参数信息。信息是一个元组列表可能看起来像这样的:

[(4, 0.7984031936127745), (5, 0.5988023952095809), (5, 0.8739076154806492), (5, 0.7364544976328248), (3, 0.9980039920159681), (1, 0.8455034588777863), (4, 0.6659267480577137), (5, 0.9950248756218907), (5, 0.9991673605328892), (3, 0.5828476269775188), (1, 0.5226084980686208), (1, 0.5291005291005291), (4, 0.7984031936127745), (4, 0.5380476556495004), (5, 0.6357856494096277), (2, 0.9975062344139651), (4, 0.6644518272425249)]

我的范围被限制在1,2,3,4或5 的分数是0和1之间

我我喜欢绘制一个直方图,可以处理我通过,但我真的不知道如何做,甚至初始化垃圾箱为这一个...

任何帮助,将不胜感激!

+0

我建议你使用http://www.pyqtgraph.org/ – mertyildiran

回答

2

你忘了一个值传递给range参数(这是不是真的有必要)我会做。数据本身是完全有效的。下面的代码应该给你一个粗略的图形:

plt.hist(stars, bins=5) 
plt.show() 

对于东西多一点更好看,也许:

plt.hist(stars, bins=np.arange(6)+0.5) 
plt.xticks(range(1,6)) 
plt.xlim([0.5,5.5]) 
plt.show() 

更多参考:

0

以错误的顺序给出参数hist首先需要数据,然后可选地选择多个分箱或分箱边的列表。在你的情况

plt.hist(stars,[0.5,1.5,2.5,3.5,4.5,5.5]) 
plt.show() 

plt.hist(scores) 
plt.show