Pandas groupby групповая визуализация путем разделения между группами - PullRequest
0 голосов
/ 14 ноября 2018

Я столкнулся с очень досадной проблемой.У меня есть набор данных, в котором у меня есть суммы продаж для разных регионов и лет.

Я хотел бы визуализировать годовые агрегированные суммы продаж для разных регионов.

Ниже приведен мой код групповой операции:

groups = df.groupby(["Region", "Year"])["Sales"].sum()
groups.plot.bar(color="blue")
plt.show()

И результат, который я получаю, выглядит следующим образом: enter image description here

У меня есть два вопроса: 1. Как я могу каким-то образом отделить бары региона и года отдруг друга, как так мой график выглядит действительно запутанным?Разделительная линия или фактически выделитель также сработают, или даже больший разрыв будет хорошим решением для меня.(Пожалуйста, посмотрите ниже, что я имею в виду :) enter image description here или enter image description here

Я понятия не имею, как решить эту проблему.

Вопрос № 2. Как я могу отсортировать это изображение по регионам с наибольшим количеством продаж, за которыми следует второе место по продажам в год и т. Д.?Вид сортировки в порядке убывания по регионам.

Я попробовал код ниже:

groups = df.groupby(["Region", "Year"])["Sales"].sum()
groups2=groups.sort_values(axis=[0][1],ascending=False)
groups.plot.bar(color="blue")
plt.show()

Но я получаю индекс списка из-за ошибки диапазона.Использование axis = [0] не решает проблему.

Большое спасибо за вашу помощь заранее!

1 Ответ

0 голосов
/ 15 ноября 2018

Следуя совету ChrisD, вы можете получить рабочий результат с помощью seaborn's catplot, чтобы отобразить ваши бары в разных гранях по регионам.

sns.catplot(x='Year', y='Sales', col='Region', data=groups, kind='bar')

Возможно, вам придется отформатировать пропорции для отображения.

...