You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Plotly教程:如何用X、Y、Intensity三个列表绘制热力图

使用Plotly Express绘制热力图的方法

针对你给出的三组列表数据,我们可以通过以下步骤用Plotly Express生成对应的热力图:

  1. 导入依赖库
    先导入数据处理和绘图所需的库:

    import pandas as pd
    import plotly.express as px
    
  2. 将数据整理为DataFrame
    把x、y、intensity三个列表组合成pandas DataFrame,方便后续格式转换:

    x = [1,1,2,4,5,6,7,8,9]
    y = [11,12,13,14,15,16,17,18,19]
    intensity = [21,22,23,24,25,26,27,28,29]
    
    df = pd.DataFrame({'x': x, 'y': y, 'intensity': intensity})
    
  3. 转换为热力图所需的宽格式数据
    Plotly Express的imshow函数需要二维网格结构的数据,因此我们需要把长格式的DataFrame透视成宽表——行对应y值,列对应x值,单元格填充对应的强度值:

    heatmap_data = df.pivot(index='y', columns='x', values='intensity')
    

    这一步会自动处理缺失的x-y组合(比如x=3对应所有y值),这些区域会显示为空值,绘图时会以留白或特定颜色标识。

  4. 绘制热力图
    使用px.imshow生成热力图,并配置轴标签和标题:

    fig = px.imshow(heatmap_data,
                    labels=dict(x="X坐标", y="Y坐标", color="强度值"),
                    x=heatmap_data.columns,
                    y=heatmap_data.index,
                    title="X-Y坐标对应强度热力图")
    fig.show()
    

如果你希望基于原始离散点直接生成聚合式热力图,也可以用px.density_heatmap,这种方式适合数据量较大的场景:

fig = px.density_heatmap(df, x='x', y='y', z='intensity',
                         labels=dict(x="X坐标", y="Y坐标", intensity="强度值"),
                         title="X-Y坐标强度热力图")
fig.show()

你的数据中x=1对应两个不同的y值(11和12),两种方法都能准确展示对应关系,具体选择取决于你想要的可视化效果。

内容的提问来源于stack exchange,提问作者Taylor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 00:20:47