从元组列表构建条形图Python

2024-05-20 15:46:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要从得到的元组列表中构建一个条形图,其中键名作为x轴上显示的每个条形图的标签,值作为条形图的高度。 以下是我输入的内容:

top20 = [('Blues', 2008), ('Guadeloupe', 1894), ('Yorkshire', 1216), ('Monterrey', 1112), ('Government', 1081), ('Algeria', 972), ('Rotterdam', 920), ('Sardinia', 913), ('Mac OS', 864), ('Coffee', 858), ('Netherlands', 849), ('Oklahoma', 829), ('Tokyo', 817), ('Boating', 801), ('Finland', 765), ('Michigan', 737), ('Tamaulipas', 733), ('Croatia', 722), ('Kagoshima', 701), ('Isuzu', 678)]

以下是我当前使用的代码:

^{pr2}$

我知道,逻辑遵循字典作为输入,但我想不出一种方法来实现这一点。请帮忙,并提前谢谢你。在


Tags: 内容列表高度标签元组条形图rotterdamalgeria
1条回答
网友
1楼 · 发布于 2024-05-20 15:46:01

您可以将元组列表转换为list并使用它:

plt.bar(range(len(top20)), [val[1] for val in top20], align='center')
plt.xticks(range(len(top20)), [val[0] for val in top20])
plt.xticks(rotation=70)
plt.show()

输出:如果删除align='center',即:

enter image description here

更新:【评论中询问的操作】

how would I add value labels to each bar to make the chart more comprehensive?

^{pr2}$

输出:

enter image description here

还有

dict(top20)

输出:

{'Algeria': 972,
 'Blues': 2008,
 'Boating': 801,
 'Coffee': 858,
 'Croatia': 722,
 'Finland': 765,
 'Government': 1081,
 'Guadeloupe': 1894,
 'Isuzu': 678,
 'Kagoshima': 701,
 'Mac OS': 864,
 'Michigan': 737,
 'Monterrey': 1112,
 'Netherlands': 849,
 'Oklahoma': 829,
 'Rotterdam': 920,
 'Sardinia': 913,
 'Tamaulipas': 733,
 'Tokyo': 817,
 'Yorkshire': 1216}

将直接将元组列表转换为字典。在

相关问题 更多 >