python - 绘制排序词频的条形图
问题描述
我的字典是这样的:
{'come': 101, 'con': 101, 'si': 101, 'ha': 104, 'una': 107,
'quindi': 114, 'le': 119, 'poi': 128, 'io': 129, 'per': 147,
'sono': 155, 'in': 175, 'ho': 179, 'il': 200, 'mi': 245,
'la': 247, 'non': 265, 'un': 270, 'di': 310, 'che': 377}
我想绘制一个条形图,显示每个单词按其值排序(按升序排列)。我该怎么做?我尝试自己对字典进行排序然后绘图,但是图中的条形图未排序
解决方案
如果你考虑额外的包,让我们试试pandas
import pandas as pd
pd.Series(d).sort_values(ascending=False).plot.bar()
输出:
如果 Pandas 不是一个选项,您可以使用 Python 方法:
# sort the dictionary by values, return a list of pairs
sorted_vals = sorted(d.items(), key=lambda x: (-x[1],x[0]))
plt.bar([x[0] for x in sorted_vals], [x[1] for x in sorted_vals])
并得到几乎相同的情节。
推荐阅读
- inform7 - 从 Inform 7 中的角色获得简单回复
- flutter - 如何允许用户点击标题以在 ExpansionPanel 上打开
- python-3.x - pyinstaller + PySide6 -- 警告:文件已经存在但不应该:
- perl - Perl - 使用 .html 文件时出现编码错误
- python - Python Selenium 无法从循环中获取结果
- django - 如何在 ViewSet 中为与标准路由相同的路由添加自定义操作
- python - 高斯混合模型 (GMM) 提供与训练数据无关的结果
- c++ - 只允许使用静态数据成员模板
- flutter - 需要查询或条件才能在颤动中获取选定的数据
- pysimplegui - PySimpleGUI 和 PySimpleGUIQt 中的菜单行为