Вы можете добавить легенду, указав 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](https://i.stack.imgur.com/kGMFf.png)