餐厅订单下单时间分布——热力图

文章介绍了热力图的解读,包括其作为数值矩阵的特性,以及如何通过颜色变化展示数据。接着,详细讲述了使用Python如何绘制热力图,包括数据预处理、分组聚合和使用特定库如pyecharts进行可视化的过程。此外,还推荐了一个在线绘图网站供不熟悉R语言的读者使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 前言:

一、热力图的解读

二、热力图的绘制

三、实现热力图的具体代码

1.导入需要用到的库

 2.导入需要处理的数据文件

3. 加工时间数据

 4.分组聚合求各个星期各个小时的订单数量

 5.构造热力图的横轴、纵轴标签以及值数据结构

 6.画热力图的一些配置项


 前言:

        热力图是一个表现数值的矩阵,通过颜色的变化我们可以很迅速的对数据有所了解,图中的每一个小长方形都是一个数值,选定我们所需要的色键颜色来给每一个数值分配颜色。

一、热力图的解读

        热力图(Heatmap)是通过将数据矩阵中的各个值按照一定规律映射为颜色展示,利用颜色变化来可视化数据,这种方法可以很直观地呈现多样本多个基因的全局表达量变化,同时还可以展现多样本或者多基因表达量的聚类关系。

二、热力图的绘制

        绘制热力图常用的是R语言,如果您对R不是很熟悉的话,推荐一个在线绘图网站https://www.bioladder.cn,此网站是由青莲公司和国家蛋白质科学中心联合建立和维护的,是此公司在满足自己以及其客户需求的基础上,开放给所有人免费使用的,不限制使用次数,是生信分析绘图免费又好用的神器。

三、实现热力图的具体代码

1.导入需要用到的库

        代码示例:

import pandas as pd

 2.导入需要处理的数据文件

        (要注意路径是否正确,可以是相对路径也可以是绝对路径)

   r的作用:加上 r 就是保持字符串原始值的含义,即不对其中的符号进行转义

        代码示例:

data = pd.read_excel(r'新订单表(1).xlsx')
data

        运行结果: 

3. 加工时间数据

        采用Series.dt.dayofweek属性以在给定Series对象的基础数据中返回给定日期时间的星期几。现在我们将使用Series.dt.dayofweek属性以在给定Series对象的基础数据中返回给定日期时间的星期几。正如我们在输出中看到的,Series.dt.dayofweek属性已成功访问并返回给定系列对象的基础数据中的星期几。

        aggregate()是聚合函数,可以简写为agg()。它可以将很多统计函数聚合在一起。

        代码示例:

data['星期'] = data['用餐开始时间'].dt.dayofweek+1
data['小时数'] = data['用餐开始时间'].agg(lambda x:x.hour)
data

        运行结果: 

 4.分组聚合求各个星期各个小时的订单数量

        groupby()的作用就是为数据分组,然后在分组的基础上再做数据的分析。

        count有两个作用:统计某个字段有值的记录数;统计结果集的记录数。

        rename函数 用于列名重命名。

        代码示例:

result = data.groupby(by=['小时数','星期'])['订单编号'].count().rename('订单总数')
result

        运行结果:

 5.构造热力图的横轴、纵轴标签以及值数据结构

        代码示例:

# 横轴、纵轴数据构造
x_list = [str(i+1) for i in range(24)]
y_list = ['星期一','星期二','星期三','星期四','星期五','星期六','星期日']
# 值数据构造
hour_list = [i+1 for i in range(24)]
xingqi_list = [i+1 for i in range(7)]
value_list = []
for i in range(len(hour_list)):
    for j in range(len(xingqi_list)):
        try:
            value_list.append([i,j,int(result[hour_list[i],xingqi_list[j]])])
        except Exception as e:
#             print(e)
            value_list.append([i,j,0])
value_list

        运行结果:

 6.画热力图的一些配置项

        热力图heatmap可以表示三维信息,由于用颜色表示,相比数值没那么精确,多数用来表示变化趋势。

        先导入画热力图需要的库

        width:设置热力图的宽度

        height:设置热力图的高度

        color:表格中数字的颜色

        range_color:表格中数据越高颜色越深,可以有三种及三种以上多种颜色

        代码示例:

import pyecharts.options as opts
from pyecharts.charts import HeatMap
c = (
    HeatMap(init_opts=opts.InitOpts(width="800px", height="400px"))
    .add_xaxis(xaxis_data=x_list)
    .add_yaxis(
        series_name="用餐人数",
        yaxis_data=y_list,
        value=value_list,
        label_opts=opts.LabelOpts(
                                is_show=True, 
                                color="#fff", 
                                position="inside", 
        ),
    )
    .set_global_opts(
        legend_opts=opts.LegendOpts(is_show=False),
        xaxis_opts=opts.AxisOpts(
            type_="category",
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
            ),
        ),
        yaxis_opts=opts.AxisOpts(
            type_="category",
            splitarea_opts=opts.SplitAreaOpts(
                is_show=True, areastyle_opts=opts.AreaStyleOpts(opacity=1)
            ),
        ),
        visualmap_opts=opts.VisualMapOpts(
            min_=0, max_=50, 
            orient="horizontal",
            pos_left="center",
            range_color = ['#e5dec3','orange','red']
        ),
    )
)
c.render_notebook()

        运行结果:

四、总结

        综上所述,Python Heatmap是数据可视化中非常重要的一种技术,也是我们必须掌握的技术之一。在实际工作中,我们可以灵活运用这些技巧来绘制各种各样的Heatmap,以更好地展示数据。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值