【问题标题】:Plotting a dictionary of dictionaries绘制字典字典
【发布时间】:2019-10-17 02:51:58
【问题描述】:

我有一本结构如下的字典:

{'ytrain_0': {'Neut': 0,'hard': 143,'hard linked': 1507,'soft': 112,'soft linked': 1238}, 
'ytrain_102000': {'Neut': 426,'hard': 519,'hard linked': 829,'soft': 467,'soft linked': 759}, 
'ytrain_105000': {'Neut': 406,'hard': 489,'hard linked': 826,'soft': 499,'soft linked': 780}}

这只是一个例子。我真正的字典有 78 个字典。现在我想要做的是我想为每个例子制作一个直方图(train_0,ytrain_102000,ytrain_105000)。我怎么能在python中做到这一点?我一直无法弄清楚。

而不是创建 78 个不同的图表并自己调整一个图像。我想使用 python 在一张图像中制作 78 个图。我知道我们可以在 R 中使用 mfrow() 来做到这一点。但我不知道如何在python中做到这一点?有人可以帮我解决吗?

我正在使用以下代码进行绘图:

output = []

for a in dictionary_test.keys():
    output.append(dictionary_test[a])

import pandas as pd
pd.DataFrame(output).hist()

ax = pd.DataFrame(output).plot.bar(rot=0)

axes = pd.DataFrame(output).plot.bar(rot=0, subplots=True)
axes[1].legend(loc=2)

我得到以下图表:

enter image description here

如何确保每个子图的标题不会出现在其他图表上?

【问题讨论】:

  • 也许我应该说得更清楚些。而不是创建 78 个不同的图表并自己调整一个图像。我想使用 python 在一张图像中制作 78 个图。那有意义吗。我知道我们可以在 R 中使用 mfrow() 做到这一点。
  • 然后使用matplotlib库的subplot函数

标签: python


【解决方案1】:

试试这个:

dict = {'ytrain_0': {'Neut': 0,'hard': 143,'hard linked': 1507,'soft': 112,'soft linked': 1238},
'ytrain_102000': {'Neut': 426,'hard': 519,'hard linked': 829,'soft': 467,'soft linked': 759},
'ytrain_105000': {'Neut': 406,'hard': 489,'hard linked': 826,'soft': 499,'soft linked': 780}}

output = []

for a in dict.keys():
    output.append(dict[a]['Neut'])

import pandas as pd
pd.DataFrame(output).hist()

并使用 matplotlib 库对其进行绘图

【讨论】:

  • 感谢您的回答。它帮助我弄清楚了。我做了一个条形图。我的问题是为什么有些条比其他条厚?而且,我怎样才能确保每个图表的名称不会像现在一样出现在另一个图表上。我已经附上了我用来制作它的图像和代码。
猜你喜欢
  • 2016-01-14
  • 2020-10-09
  • 2018-04-17
  • 1970-01-01
  • 2023-03-05
  • 2020-10-17
  • 1970-01-01
  • 2014-02-07
  • 1970-01-01
相关资源
最近更新 更多