一、绘制折线图
折线图可以表示数据的变化趋势
针对数据提出要求:绘制不同地区1~4月份总交易额折线图
- 加载必要的包
import pandas as pd
import matplotlib.pyplot as plt
- 读取数据
path='../data/数据.csv'
f=open(path)
data=pd.read_csv(f)
- 提取地点名称
place=list(set(data['地点'])) #提取地点
虽然说我知道数据里的地点只包含5个,分别是“A”,“B”,“C”,“D”,“E”。但是换一个数据,一个一个地输入地址非常麻烦,因此使用这种方法。
首先使用data['地点']提取地点的所有数据,这里面肯定有很多重复的数据,使用set()函数进行去重,再转化成列表就可以了。
- 时间处理
months=[i for i in range(1,5)] #月份,代表了1~4月份
month_name=['一月', '二月', '三月', '四月'] #用于更新标签
data['支付时间'] = pd.to_datetime(data['支付时间']) #变换时间格式
- 绘制折线图
for pla in place:
place_data=data[data['地点']==pla] #各个地区的数据
place_money=list() #新建一个列表保存地区的销售额数据
for mon in months:
month_data=place_data[place_data['支付时间'].dt.month==mon] #按月提取数据
money=month_data['金额'].sum() #计算总金额
place_money.append(money)
plt.plot(months, place_money, label=pla+'地区')
plt.legend() # 图例
plt.xticks(months, month_name) #更改标签
plt.xlabel("月份") #X轴标签
plt.ylabel("总交易额") #Y轴标签
plt.title("每个地区1-4月总交易额") #标题
plt.show()
plt.xticks的用法在绘制柱状图中有介绍。
绘制的折线图如下:

由图可以看出,各个地区的销售额在二月份出现降低趋势,但随后都在上升,尤其是E地区,较其它地区增长最快。
代码汇总:
import pandas as pd
import matplotlib.pyplot as plt
path='../data/数据.csv'
f=open(path)
data=pd.read_csv(f)
place=list(set(data['地点'])) #提取地点
months=[i for i in range(1,5)] #月份,代表了1~4月份
month_name=['一月', '二月', '三月', '四月'] #用于更新标签
data['支付时间'] = pd.to_datetime(data['支付时间'])
for pla in place:
place_data=data[data['地点']==pla] #各个地区的数据
place_money=list() #新建一个列表保存地区的销售额数据
for mon in months:
month_data=place_data[place_data['支付时间'].dt.month==mon]
money=month_data['金额'].sum()
place_money.append(money)
plt.plot(months, place_money, label=pla+'地区')
plt.legend() # 让图例生效
plt.xticks(months, month_name)
plt.xlabel("月份") #X轴标签
plt.ylabel("总交易额") #Y轴标签
plt.title("每个地区1-4月总交易额") #标题
plt.show()
f.close()