python数据分析热力图怎么看_数据分析实战—热力图

前言

提供的数据:数据

一、什么是热力图?

热力图通过颜色的深浅来表示数据的分布。

示例图中规定了颜色越浅则数值越大,那么我们可以一眼就分辨出数据的分布情况,非常方便。

二、绘制热力图

针对数据提出要求:绘制E地区4月份订单量的热力图,横轴以天为单位,纵轴以小时为单位

加载必要的包

import pandas as pd

import numpy as np

import seaborn as sns #绘制热力图使用

import matplotlib.pyplot as plt

复制代码加载数据

path='../data/数据.csv'

f=open(path)

data=pd.read_csv(f)

复制代码提取地点和时间

E_data=data[data['地点']=='E']

E_data['支付时间'] = pd.to_datetime(E_data['支付时间'])

month_data=E_data[E_data['支付时间'].dt.month==4]

复制代码分组计算订单量

order_quantity_group=month_data.groupby([month_data['支付时间'].dt.day,month_data['支付时间'].dt.hour]).size()

复制代码

以天和小时为分组依据分组,size()函数表示数据个数,即为订单量。结果如下:

由结果可以看出,索引中是我们给出的分组依据,分别是“支付时间的月份”和“小时”,格式是元组类型。

新建一个矩阵

热力图根据矩阵绘制,所以在绘制热力图之前首先把所求数据排列为合适的矩阵。

m=list(map(list,zip(*list(order_quantity_group.index)))) #分离元组,包含天和小时数据

#新建一个矩阵

new_array=np.zeros((30,24)) #30代表天数,24代表小时

for i,j in zip(m[0],m[1]): #m[0]是月份,m[1]是小时

new_array[i-1][j]=order_quantity_group[(i,j)]

复制代码绘制热力图

sns.heatmap(new_array.T, annot=True,xticklabels= range(1,32), yticklabels= True, cmap="YlGnBu") #绘制热力图。

plt.title('第4月订单量热力图') #加标题

plt.xlabel("日期") #X轴标签

plt.ylabel("小时") #Y轴标签

plt.show()

f.close()

复制代码

sns.heatmap为绘制热力图函数。

第一个参数为矩阵数据,由于要求规定横轴是天,纵轴是小时,因此需要做一个转置。

annot参数代表是否在图形中显示数据,若为True,则显示数据,否则只显示颜色。

xticklabels和yticklabels是一组参数,如果为True,则绘制数据框的列名称。 如果为False,不会添加列名,如果列表类型数据,则将这些替代为x轴标签。

cmap可以设置颜色

由图可以看出,E地区销售量集中在中旬,且在一天当中集中在下午。

三、其它问题

参考

你可能感兴趣的:(python数据分析热力图怎么看_数据分析实战—热力图)