绘制使用pyplot重复每个列表条目的次数

时间:2017-05-06 23:02:26

标签: python matplotlib bar-chart

我有list包含投票(像这样votes = [1, 2, 3, 4, 1, 1, 3, 4, 4, 4])。如何使用pyplot绘制显示每个投票数的图表(即1 - > 3票,2 - > 1投票,3 - > 2票,4 - > 4票)

以下是我的表现:

from collections import Counter
import matplotlib.pyplot as plt

votes = [1,1,1,2,3,3,4,4,4,4,4]
tmp_votes_count = Counter (votes)
votes_count = []

for i in tmp_votes_count:
    votes_count.append ([i, tmp_votes_count[i]])

plt.plot([row[0] for row in votes_count], [row[1] for row in votes_count])
plt.axis([0,4,0,20])
plt.show()

有更优化的方法吗? 另外如何将图形设计为条形图而不是连续线? 我的意思是smth与此相似:

enter image description here

而不是我现在得到的: enter image description here

2 个答案:

答案 0 :(得分:1)

只做

plt.bar([row[0] for row in votes_count], [row[1] for row in votes_count])

答案 1 :(得分:1)

如果您知道pandas,那将非常简单。

votes=pd.DataFrame(data=votes,columns=['List'])
votes.List.hist()