python - 使用字典绘制直方图的最有效方法?
问题描述
我正在分析 python 中的国际象棋游戏,并试图生成每局棋步数的直方图。目标是获得类似于此可视化的内容,其中似乎平均每场比赛有 70 步:
目前我有一个无序的dict
:
{'106': 38,
'100': 46,
'65': 58,
'57': 47,
'54': 31,
'112': 29,
'93': 35,
'91': 44,
...
'109': 35,
'51': 26}
其中键表示移动次数,值表示游戏次数。
我发现提取用于绘制直方图的字典数据非常困难。我尝试提取到数据框,但无法以 matplotlib/seaborn 可读格式获取它。
解决方案
首先,我们将使用字典理解对您的字典进行排序:
d = {'106': 38,
'100': 46,
'65': 58,
'57': 47,
'54': 31,
'112': 29,
'93': 35,
'91': 44,
'109': 35,
'51': 26}
sorted_d = {key:d[key] for key in sorted(d, key = lambda x: int(x))}
现在我们用 barplot 显示它:
import seaborn as sns
sns.barplot(x=list(sorted_d .keys()), y = list(d.sorted_d ()))
这是你得到的结果:
如果你不对字典进行排序,你会得到这个:
推荐阅读
- php - 未设置单选按钮时出现错误
- swift - 使用 NVActivityIndicatorView 和 Timer,它显示的时间很短
- javascript - 来自 mongodb 查找查询的空白结果
- python - 我们可以使用 argcomplete 来完成 bash tab 完成而不在 shell 中编写 python 关键字吗?
- r - paste 如何在函数中工作
- java - 无法在 Oracle 中使用 dbms_java.loadjava 加载 jar
- r - 从列表列表中读入文件
- swift - 在 SwiftUI 中显示小吃店消息
- javascript - 渲染在使用状态时无法在反应 js 中工作
- python - 在 python 中开发时,如何在 post 请求中使用“format=json&data=”?