python用for循环画多个图形_python-使用for循环在1个图中的多个图

本文介绍了如何使用Python的pandas和matplotlib库,通过for循环遍历数据,将不同地区的销售时间序列图绘制在同一张图表中,解决了原本产生多个独立图表的问题。示例数据包括日期、地区、类别和销售额,最终通过数据透视和聚合实现了目标效果。

我有以下格式的数据,我想做的是:

1)遍历Region中的每个值

2)对于每个区域,绘制汇总(跨类别)销售数字的时间序列.

Date |Region |Category | Sales

01/01/2016| USA| Furniture|1

01/01/2016| USA| Clothes |0

01/01/2016| Europe| Furniture|2

01/01/2016| Europe| Clothes |0

01/02/2016| USA| Furniture|3

01/02/2016| USA|Clothes|0

01/02/2016| Europe| Furniture|4

01/02/2016| Europe| Clothes|0 …

该图应看起来像附件(在Excel中完成).

xqylp.png

但是,如果我尝试使用以下代码在Python中执行此操作,则当我真的希望所有线条都显示在一个图中时,会得到多个图表.

Python代码:

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

df = pd.read_csv(r'C:\Users\wusm\Desktop\Book7.csv')

plt.legend()

for index, group in df.groupby(["Region"]):

group.plot(x='Date',y='Sales',title=str(index))

plt.show()

缺少重新格式化数据的格式,任何人都可以建议如何在一个图中获得图形吗?

解决方法:

df = df.pivot_table(index='Date', columns='Region', values='Sales', aggfunc='sum')

print (df)

Region Europe USA

Date

01/01/2016 2 1

01/02/2016 4 3

df = df.groupby(['Date', 'Region'])['Sales'].sum().unstack(fill_value=0)

print (df)

Region Europe USA

Date

01/01/2016 2 1

01/02/2016 4 3

df.plot()

标签:pandas,matplotlib,python

来源: https://codeday.me/bug/20191111/2018658.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值