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
![image](https://img2020.cnblogs.com/blog/2127859/202109/2127859-20210901150617300-599735457.png)
posted @ 2021-09-01 15:06  ymy_banana  阅读(717)  评论(0)    收藏  举报