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

Plotly Heatmap如何为每个数据点单独设置hovertemplate

问题原因

Plotly Heatmap 轨迹的hovertemplate参数仅接受字符串类型的模板输入,不支持直接传入二维数组映射各单元格的悬浮提示。直接传入二维数值数组时,参数类型不匹配,Plotly 无法解析生成合法的提示内容,因此悬浮时无任何提示显示。

实现方案

为每个热力图数据点配置独立的悬浮提示需要搭配customdata参数完成:

  • 将每个单元格需要展示的自定义提示内容整理为与z数组维度完全一致的二维数组,传入customdata参数
  • 在hovertemplate字符串模板中,通过%{customdata}占位符引用对应位置的自定义内容,也可搭配内置占位符%{x}、%{y}、%{z}组合展示坐标、数值等默认信息
  • 如果每个点的提示内容结构差异较大,可以直接将每个单元格完整的提示字符串存入customdata数组,hovertemplate直接设置为"%{customdata}<extra></extra>"即可

模板末尾的<extra></extra>用于隐藏悬浮提示框默认附带的trace名称侧边栏,无相关需求可省略。

正确代码示例
import plotly.graph_objects as go

data = [[1, 2, 3],
        [1, 2, 3],
        [1, 2, 3]]
# 与z维度一致的自定义提示内容数组
hover_texts = [
    ["第一行第一列,数值1", "第一行第二列,数值2", "第一行第三列,数值3"],
    ["第二行第一列,数值1", "第二行第二列,数值2", "第二行第三列,数值3"],
    ["第三行第一列,数值1", "第三行第二列,数值2", "第三行第三列,数值3"]
]

fig = go.Figure(go.Heatmap(
    z=data,
    customdata=hover_texts,
    hovertemplate="坐标(x,y): (%{x}, %{y})<br>数值: %{z}<br>信息: %{customdata}<extra></extra>"
))
fig.show()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 11:42:17