Как нарисовать морской или матлабский сюжет - PullRequest
0 голосов
/ 29 мая 2018

У меня есть датафрейм, который выглядит ниже

            A   B   C
Above 90%   30  50  60
80% - 90%   39  72  79
65% - 80%   80  150 130
Below 65%   80  70  90

И я хотел бы получить гистограмму, как показано ниже

enter image description here

И у меня есть еще один набор данных, который имеет еще одну подкатегорию для A, B и C

Company Category    Above 90%   80% - 90%   65% - 80%   Below 65%
A       Fast Movers 1           11          21          9
A       Med Movers  2           13          42          40
A       Slow Movers 34          26          44          50
B       Fast Movers 1           11          21          9
B       Med Movers  16          48          92          45
B       Slow Movers 33          13          37          45
C       Fast Movers 0           0           2           30
C       Medi Movers 11          37          74          50
C       Slow Movers 41          42          65          30

Для приведенной выше таблицы я хочу составить гистограмму с накоплением цветов только для категорий, и я хочу, чтобы компания и точность былибыть ярлыками, а не цветами.

Я даже не смог добиться этого с помощью других программ.

Прошу всех вас любезно помочь мне добиться этого, я буду признателен за ваше время и помощь.

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Вы можете использовать:

df.set_index(['Company','Category']).stack().unstack(1).plot.bar(stacked=True)

pic

Или для каждого company отдельного графика:

for i, x in df.set_index(['Company','Category']).stack().unstack(1).reset_index(level=0).groupby('Company'):
    x.plot.bar(stacked=True)
0 голосов
/ 29 мая 2018

Для первого вопроса вы можете использовать это:

import matplotlib.pyplot as plt
ax = df.plot(kind='bar', title ="Accuracy distribution", figsize=(15, 10), legend=True, fontsize=12)
for p in ax.patches:
    ax.annotate(str(p.get_height()), (p.get_x() * 1.005, p.get_height() * 1.005))
plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...