python - 可视化 cumsum python
问题描述
现在我在下面有了这个数据框,我正在尝试将其可视化。
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")
加减与可用月度库存的比较:
问题:
如何将图例添加到 ax2 轴。这表示每个月的每月可用项目。我试过了
ax2.legend() 但它不起作用
我如何为每个项目创建类似的图(A、B、C、D、E)
解决方案
您可以通过指定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
是使用 pandasplot
方法。我们将首先使用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()
推荐阅读
- javascript - Mongoose 在嵌套数组上运行 Get
- r - 将列名和行名与另一个数据框中的列和值匹配
- php - Binary Tree Maximum Difference of Labels
- php - laravel 5.6 JQuery 在我的项目中不起作用,我将它加载到我的脚本中
- html - CSS:如何在响应图像旁边垂直对齐跨度中的文本(也在跨度中)
- aem - How to get the browser page URL without the domain name in the component's jsp/html aem6.3?
- excel - Using sheet1's two columns how to match with Sheet2 column?
- amazon-web-services - ElastiCache - Migrating data from t1.*/ t2.* to m3.*
- python - 从 python 列表中选择子列表,在同一元素上开始和结束
- java - Spring Boot 找不到 Thymeleaf(消息)属性文件