Визуализация cumsum python - PullRequest
       13

Визуализация cumsum python

0 голосов
/ 31 августа 2018

Это относится к сообщению Разница с использованием панд

Теперь, когда у меня есть этот кадр данных ниже, я пытаюсь визуализировать это.

Item    Add Subtracts   Month   Net_Items   Monthly_Available_Items
C   68  30  1   38  38
C   58  34  2   24  62
C   64  47  3   17  79
C   263 81  4   182 261
C   95  104 5   -9  252
C   38  63  6   -25 227
C   115 95  7   20  247
C   97  112 8   -15 232

Код и график ниже:

plt.figure(figsize=(20,10))
fig, ax1 = plt.subplots(figsize = (20,10))
ax1 = sns.pointplot(x='Month', y='value', hue='variable',data=stack_df)
ax1.legend(loc = 'upper left')
ax2 = sns.barplot(x = 'Month', y = 'Monthly_Available_Items', data = 
stack_df, color = 'purple')
ax1.set_ylabel("Count of Items")

Сравнение сложения и вычитания с доступными ежемесячными запасами: Comparison of Add and subtracts vs available monthly inventory

Вопросы:

  1. Как добавить легенду к оси ax2. Это представляет ежемесячные доступные пункты для каждого месяца. я пытался

    ax2.legend (), но это не работает

  2. Как создать похожие графики для каждого элемента (A, B, C, D, E)

1 Ответ

0 голосов
/ 31 августа 2018

Вы можете добавить легенду, указав label

ax2 = sns.barplot(x = 'Month', y = 'Monthly_Available_Items', 
                             data = stack_df, color = 'purple', 
                             label = "Monthly_Available_Items")
ax2.legend() # will show the legend for the barplot

Если вы хотите построить несколько графиков на основе столбца Item, вы можете использовать groupby для построения.

Предполагая, что это наш фрейм данных df:

  Item  Add  Subtracts  Month   Net_Items   Monthly_Available_Items
0   C   68     30        1        38             38
1   D   58     34        2        24             62
2   C   64     47        3        17             79
3   C   263    81        4       182            261
4   D   95    104        5        -9            252
5   D   38     63        6       -25            227
6   D   115    95        7        20            247
7   C   97    112        8       -15            232

Самый простой способ построить несколько графиков для каждого уникального значения из столбца Item - использовать метод pandas plot. Сначала мы будем использовать melt, а затем groupby.

melt = df.melt(id_vars=('Item', 'Month', 'Monthly_Available_Items'), 
               value_vars=['Add','Subtracts'])

# sort the melted df by item column
melt.sort_values("Item", inplace=True)

# using groupby to plot by item column.
ax = df.groupby("Item").plot(x='Month', y = "Monthly_Available_Items",
                        kind='bar', color='purple')

# list of axes generated by ax
axes = [i for i in ax] 

# list of unique items from item column eg.,C,D
items = melt.Item.unique()

for i in range(len(c)):
    sns.pointplot(x='Month', y='value', hue='variable', 
                       data=melt[melt.Item == c[i]], ax=axes[i])

# customize
axes[0].set_title("Plot for Item C")
axes[1].set_title("Plot for Item D")
plt.show()

enter image description here enter image description here

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