Барплот сравнивает две колонки - PullRequest
0 голосов
/ 10 апреля 2019

Я хотел бы нарисовать график гистограммы, который бы сравнивал эволюцию двух переменных доходов на ежемесячной временной оси (12 месяцев счетов).

Я хотел использовать sns.barplot, но могуне использовать "оттенок" (потому что 2 переменные не подкатегории?).Есть ли другой способ, такой же простой, как с оттенком?Могу ли я «создать» оттенок?

Вот небольшая выборка моих данных:

(я преобразовал свою таблицу в сводную таблицу)

[In]

data_pivot['Revenue-Small-Seller-in'] = data_pivot["Small-Seller"] + data_pivot["Best-Seller"] + data_pivot["Medium-Seller"]
data_pivot['Revenue-Not-Small-Seller-in'] = data_pivot["Best-Seller"] + data_pivot["Medium-Seller"]
data_pivot

[Out]

InvoiceNo   Month   Year    Revenue-Small-Seller-in Revenue-Not-Small-Seller-in
 536365       12    2010             139.12                   139.12
 536366       12    2010              22.20                    11.10
 536367       12    2010             278.73                   246.93

( извините за уродливое представление моих данных, см. Рисунок, чтобы увидеть полную таблицу (так как имеется несколько столбцов))

1 Ответ

0 голосов
/ 10 апреля 2019

Вы можете сделать:

render_df = data_pivot[data_pivot.columns[-2:]]
fig, ax = plt.subplots(1,1)
render_df.plot(kind='bar', ax=ax)
ax.legend()
plt.show()

Выход:

enter image description here

Или sns стиль, как вы просили

render_df = data_pivot[data_pivot.columns[-2:]].stack().reset_index()
sns.barplot('level_0', 0, hue='level_1',
            render_df)

здесь render_df после stack():

+---+---------+-----------------------------+--------+
|   | level_0 |           level_1           |   0    |
+---+---------+-----------------------------+--------+
| 0 |       0 | Revenue-Small-Seller-in     | 139.12 |
| 1 |       0 | Revenue-Not-Small-Seller-in | 139.12 |
| 2 |       1 | Revenue-Small-Seller-in     | 22.20  |
| 3 |       1 | Revenue-Not-Small-Seller-in | 11.10  |
| 4 |       2 | Revenue-Small-Seller-in     | 278.73 |
| 5 |       2 | Revenue-Not-Small-Seller-in | 246.93 |
+---+---------+-----------------------------+--------+

и вывод:

enter image description here

...