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

如何在Plotly密度热力图悬浮提示中添加Frequency数据?

解决Plotly密度热力图悬浮提示显示额外数据的问题

问题根源

你在hovertemplate中的meta引用语法错误,%{data[n[.meta[i]}'是无效的Plotly模板语法,导致无法正确渲染Frecuencia列的数据。

修正方案

1. 正确的meta引用语法

对于Plotly热力图类图表,通过update_traces(meta=...)传递额外数据后,在hovertemplate中直接用%{meta}即可引用对应单元格的元数据值。

2. 修正后的完整代码

fig_heatmap = px.density_heatmap(total,
                                 x='Estudios de la madre',
                                 y='Estudios del padre',
                                 z='Porcentaje',
                                 category_orders={'Estudios de la madre': orden_estudios,
                                                  'Estudios del padre': orden_estudios},
                                 text_auto=True,
                                 color_continuous_scale='blues',
                                 range_color=[0, 15])
fig_heatmap.update_coloraxes(colorbar_title='Porcentaje')
# 修正hovertemplate中的meta引用语法
fig_heatmap.update_traces(
    meta=total.Frecuencia.tolist(),  # 确保meta以列表格式传递
    hovertemplate='Estudios de la madre: %{x}<br>' +
                 'Estudios del padre: %{y}<br>' +
                 'Porcentaje: %{z}<br>' +
                 'Frecuencia: %{meta}<extra></extra>'
)

st.plotly_chart(fig_heatmap, use_container_width=True)

3. 关键说明

  • 将total.Frecuencia转为列表(.tolist())是为了确保数据能被Plotly正确映射到每个热力图单元格
  • 添加<extra></extra>可移除Plotly默认的冗余提示文本(如trace名称),让悬浮提示更简洁
  • 若Frecuencia为数值类型,可格式化显示,比如Frecuencia: %{meta:.0f}<br>来强制显示整数

样本数据验证

使用你提供的样本数据时,需确保数据框列名对应正确,可通过以下方式创建total数据框:

import pandas as pd
total = pd.DataFrame(data, columns=['Estudios de la madre', 'Estudios del padre', 'Frecuencia', 'Porcentaje'])
# 定义自定义排序规则
orden_estudios = ['Primaria o secundaria', 'Bachillerato', 'Carrera técnica', 'Licenciatura', 'Posgrado', 'No sé']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 01:05:14