你应该使用字典,这样更易于使用。以下代码可以帮助你按降序排列条形图:
popularity_data = {
'Unknown': 10.0,
u'Drew E.': 240.0,
u'Anthony P.': 240.0,
u'Thomas H.': 220.0,
u'Ranae J.': 150.0,
u'Robert T.': 120.0,
u'Li Yan M.': 80.0,
u'Raph D.': 210.0
}
for y in reversed(sorted(popularity_data.values())):
k = popularity_data.keys()[popularity_data.values().index(y)]
print k + ':', y
del popularity_data[k]
你可以像 Aleksander S
建议的那样使用 matplotlib 添加趋势线。
此外,如果你喜欢,也可以将它存储在元组列表中,就像最初的方式一样:
popularity_data = {
'Unknown': 10.0,
u'Drew E.': 240.0,
u'Anthony P.': 240.0,
u'Thomas H.': 220.0,
u'Ranae J.': 150.0,
u'Robert T.': 120.0,
u'Li Yan M.': 80.0,
u'Raph D.': 210.0
}
descending = []
for y in reversed(sorted(popularity_data.values())):
k = popularity_data.keys()[popularity_data.values().index(y)]
descending.append(tuple([k, y]))
del popularity_data[k]
print descending
people = zip(*popularity_data)[0]
替换为people = list(zip(*popularity_data))[0]
。实际上,在Python 3中,zip返回一个可迭代对象而不是列表。 - Pierre S.