Plotly雷达图设置填充后hover悬浮数据不显示问题求解
雷达图填充与自定义悬停效果共存实现方案
问题原因
- 添加
fill='toself'参数后,Plotly会为雷达图生成可响应hover的填充面轨迹,该轨迹默认未绑定自定义悬停数据,会导致原有悬停信息被覆盖。 - 自定义
hovertemplate时嵌套了多余的单引号,导致模板解析错误,无法正常读取自定义数据。
解决方案1 最简实现(保留原有hover配置)
直接在更新轨迹时添加hoveron='points'参数,指定仅数据点触发悬停事件,避开填充面的hover响应即可:
import pandas as pd import plotly.express as px df = pd.DataFrame({'sample':['sample_1','sample_2','sample_3','sample_1','sample_2','sample_3','sample_1','sample_2','sample_3'], 'KPI':['KPI_1','KPI_1','KPI_1','KPI_2','KPI_2','KPI_2','KPI_3','KPI_3','KPI_3'], 'value':[1,2,1,1,1,2,2,1,1], 'sample_info':['info_1','info_1','info_1','info_2','info_2','info_2','info_3','info_3','info_3']}) fig = px.line_polar(df, r='value', theta='KPI', color='sample', line_close = True, hover_data = ['sample_info']) fig.update_traces(fill='toself', hoveron='points') fig.show()
解决方案2 自定义悬停模板
如果需要完全自定义悬停展示内容,修正模板的引号问题即可正常读取customdata:
fig = px.line_polar(df, r='value', theta='KPI', color='sample', line_close = True, custom_data = ['sample_info']) fig.update_traces( fill='toself', # 模板中去掉多余嵌套的单引号,<extra></extra>用于隐藏默认附加的trace名称 hovertemplate="KPI指标: %{theta}<br>数值: %{r}<br>样本信息: %{customdata[0]}<extra></extra>" ) fig.show()
内容的提问来源于stack exchange,提问作者janphhe
相关产品推荐
相关产品推荐

