Как создать гистограммы в словаре в словаре - PullRequest
0 голосов
/ 03 июня 2019

Мне нужно сделать подзаговоры, которые являются гистограммами следующего словаря: dict1 = {44: {0: 0, 1: 1, 2: 0, 3: 3, 4: 6}, 45:{0: 1, 1: 4, 2: 2, 3: 0, 4: 0}}

This was my (not correct) code:
fig, ax = plt.subplots(2,1)
for nr in dict1: 
        ax[list(dict1.keys()).index(nr),1].plot(list(dict1[nr].keys()), list(dict1[nr].values()), kind='bar')
        plt.tight_layout()
        plt.show

Вы можете мне помочь? Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 03 июня 2019

В коде вопроса много неправильного.Два варианта:

Отображение в стиле Matplotlib

import matplotlib.pyplot as plt

dict1 = {44: {0: 0, 1: 1, 2: 0, 3: 3, 4: 6}, 45:{0: 1, 1: 4, 2: 2, 3: 0, 4: 0}}

fig, axs = plt.subplots(len(dict1.keys()))
for (k, d), ax in zip(dict1.items(), axs):
    ax.bar(*zip(*d.items()))
    ax.set_title(k)

fig.tight_layout()
plt.show()

enter image description here

Отображение в стиле панд

import pandas as pd
import matplotlib.pyplot as plt

dict1 = {44: {0: 0, 1: 1, 2: 0, 3: 3, 4: 6}, 45:{0: 1, 1: 4, 2: 2, 3: 0, 4: 0}}
df = pd.DataFrame(dict1)

df.plot.bar(subplots=True)

plt.tight_layout()
plt.show()

enter image description here

0 голосов
/ 03 июня 2019
fig, ax = plt.subplots(2,1)
for nr in dict1.keys():   
    ax[list(dict1.keys()).index(nr)].bar(
        list(dict1[nr].keys()),
        list(dict1[nr].values())
    )
plt.tight_layout()
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...