pyecharts--heatmap
Pyecharts 各种图的数据样式
热力图(heatmap)
1.1 数据格式
热力图的数据主要由,横轴名称xaxis,竖轴名称为yaxis,主体数据三个部分
-
横轴和竖轴均为列表
-
主体数据的格式为列表嵌套列表,其中第二层列表为[x,y,value]
-
主体数据的条数为【横轴个数*竖轴个数】
1.2 数据的样式
例如某个商品的销售量,统计一星期,每小时的销售量
x轴为星期 :x = [x for x in range(7)] # 0代表星期日
y轴为小时 :y = [y for y in range(23)] # 0代表24点
data主体数据 :data = [
['星期一','1点',20],
['星期一','2点',30],
['星期一','3点',40],
……………………
]
1.3 数据转换代码
| 商品名称 | 日期 | 小时 | 值 |
|---|---|---|---|
| 苹果手机 | 2021-9-1 | 0:00 | 58 |
| 苹果手机 | 2021-9-1 | 1:00 | 89 |
| 苹果手机 | 2021-9-1 | 2:00 | 24 |
| 苹果手机 | 2021-9-1 | 3:00 | 57 |
| 苹果手机 | 2021-9-1 | 4:00 | 38 |
| 苹果手机 | 2021-9-1 | 5:00 | 21 |
| 苹果手机 | 2021-9-1 | 6:00 | 48 |
| 苹果手机 | 2021-9-1 | 7:00 | 81 |
| 苹果手机 | 2021-9-1 | 8:00 | 37 |
| 苹果手机 | 2021-9-1 | 9:00 | 65 |
传入的数据为df类型,字段只能为四个,其中从左向右依次依次为类别,x轴,y轴,值,其中类别指的是商品名称的集合,每一个类别的值形成一个独立的热力图,例如商品名称里有苹果手机,华为手机,那函数可以将苹果手机和华为手机的主体数据都形成,封装在字典里
def heatmap_data(df):####(传入的df必须只有4个字段,字段的序列,分别是类别,x,y,值)
df.columns = ['type','x','y','value']
columns_list = ['x','y']+list(df['type'].unique())
data = pd.pivot_table(df,values=['value'],index=['x','y'], columns=['type'], aggfunc=np.sum, fill_value=0)
data.reset_index(inplace=True)
data.columns = columns_list
x_axis = data['x'].unique()
y_axis = data['y'].unique()
x_len = len(x_axis) ###7
y_len = len(y_axis) ###48
dic = {}
for name in columns_list[2:]:
data_value = [[y, x] for x in range(x_len) for y in range(y_len)]
for w in range(len(data_value)):
data_value[w].append(int(data[name][w]))
dic[name] = data_value
return dic,y_axis,x_axis


浙公网安备 33010602011771号