Plotly绘制ECDF图时add_hline添加的水平线图例不显示怎么办
问题原因
- Plotly 中
add_hline/add_vline绘制的辅助参考线默认不会自动加入图例渲染队列,你代码里添加的visible=True参数仅控制参考线本身在绘图区域的显示/隐藏状态,和图例条目生成逻辑完全无关,因此配置后不会生效。 - 原代码存在数值笔误:标注为
75%的参考线传入了y=30参数,会导致参考线位置和标注含义不匹配,实际应传入y=75对应75%分位的位置。
修复方案
调用add_hline时显式传入showlegend=True参数,即可将对应参考线注册为图例条目;如果需要固定图例顺序,确保两条参考线作为第2、3项展示,可以额外传入legendrank参数控制排序权重,数值越小在图例中排序越靠前。
修正后的完整代码:
fig_cdf = px.ecdf(df['Timespan'], color_discrete_sequence=['blue'],ecdfnorm='probability', orientation='h') # 添加90%参考线,开启图例展示,设置排序权重为2,排在原始CDF曲线(默认权重1)之后 fig_cdf.add_hline(y=90, line_width=2, line_color="red", name='90%', showlegend=True, legendrank=2) # 修正y值为75,开启图例展示,设置排序权重为3,排在第三位 fig_cdf.add_hline(y=75, line_width=2, line_color="red", name='75%', showlegend=True, legendrank=3) fig_cdf.update_layout(width=500, height=500) fig_cdf.show()
上述配置默认支持图例交互:点击图例中对应参考线的条目,可以切换该参考线的显示/隐藏状态,和原生图例交互逻辑一致。
内容的提问来源于stack exchange,提问作者Demi
相关产品推荐
相关产品推荐

