Как сделать сложный граф прямо из кода Python для группового использования? - PullRequest
0 голосов
/ 02 октября 2018

Я хочу сделать график после применения группового

Итак, я применил

Sales_comparison = SalesData[['Region', 'Sales2015', 
'Sales2016']].groupby(['Region']).agg(['sum'])

Я пробовал для графика

ax = Sales_comparison[['Sales2015','Sales2016']].plot(kind='bar', title 
="Sales by region comparison", figsize=(7.5, 5), legend=True, fontsize=12)
ax.set_xlabel("Region", fontsize=12)
ax.set_ylabel("Sales", fontsize=12)
x = Sales_comparison.Region.index.tolist()
x_pos = [i for i, _ in enumerate(x)]
plt.xticks(x_pos, x)
plt.show()

Но этобесполезно

Есть ли более простой и короткий способ сделать то, что я хочу достичь?

enter image description here

Данные можно найти в Ссылка на данные

1 Ответ

0 голосов
/ 02 октября 2018

Не могли бы вы уточнить, что вы подразумеваете под индексацией?Я предполагаю, что вы имеете в виду метки на графике, которые будут работать так же, как вы уже сделали.

Sales_comparison = df[['Region', 'Sales2015', 'Sales2016']].groupby(['Region']).agg(['sum'])

ax = Sales_comparison.plot(kind='bar', stacked=True, legend=False,color=['navy','darkred'])
for i, label in enumerate(list(Sales_comparison.index)):
    S16 = int(Sales_comparison.loc[label]['Sales2016'][0])
    ax.annotate(str(S16),(i-0.2,S16+0.2*S16),color='white')
    S15 = int(Sales_comparison.loc[label]['Sales2015'][0])
    ax.annotate(str(S15),(i-0.2,S15-0.5*S15),color='white')

и в результате получите следующее изображение: Конечный результат с метками

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...