我有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与此相似:
答案 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()