绘制字典词典

时间:2019-05-31 12:43:52

标签: python

我有一个具有以下结构的词典字典:

{'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个图形。我知道我们可以使用mfrow()在R中做到这一点。但是我不知道如何在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

如何确保每个子图的标题都不会出现在另一个图上?

1 个答案:

答案 0 :(得分:0)

尝试一下:

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库进行绘制