У меня проблема с отображением многоиндексированных данных на одной гистограмме.Я начал с DataFrame с тремя столбцами (artist, genre и miscl_count) и 195 строками.Затем я сгруппировал данные по двум столбцам, что привело к приведенной ниже таблице.Мой вопрос, как я могу создать гистограмму из этого, чтобы каждая группа в "miscl_count" отображалась в виде трех отдельных гистограмм во всех пяти жанрах (т.е. общее количество баров 3х5)?Я также хотел бы, чтобы жанр определял, какой цвет назначается полосе.
Я знаю, что есть расстановка стеков, но я не понимаю, как заставить это работать с Matplotlib или Seaborn.
Заголовок DataFrame, над которым я выполняю групповой метод, выглядит следующим образом:
print(miscl_df.head())
artist miscl_count genre
0 band1 5 a
1 band2 6 b
2 band3 5 b
3 band4 4 b
4 band5 5 b
5 band6 5 c
miscl_df_group = miscl_df.groupby(['genre', 'miscl_count']).count()
print(miscl_df_group)
После группировки по, вывод выглядит так:
artist
miscl_count 4 5 6
genre
a 11 9 9
b 19 13 16
c 13 14 16
d 10 9 12
e 21 14 10
Просто чтобы сделатьуверен, я ясно дал понять, что вывод должен быть представлен в виде одной диаграммы (а не в виде вспомогательных участков)!
Рабочее решение, которое будет использоваться для сгруппированных данных:
miscl_df_group.unstack(level='genre').plot(kind='bar')
В качестве альтернативы этотакже можно использовать так:
miscl_df_group.unstack(level='miscl_count').plot(kind='bar')