如何为Plotly散点图自动添加最大值点标签
Plotly散点图自动标注最大值点实现方案
核心逻辑是从DataFrame中自动匹配最大值对应的x轴坐标,无需手动硬编码日期值,同时支持多最大值场景的批量标注:
单最大值场景实现
替换你原代码中硬编码x值的add_annotation部分即可:
# 定位最大值对应的行数据 max_row = df[df['values'] == df['values'].max()].iloc[0] fig.add_annotation( x=max_row['day-of-week'], y=max_row['values'], text=str(max_row['values']), yshift=10, # 标注向上偏移10像素,避免遮挡散点 showarrow=True, arrowhead=1 )
多相同最大值场景实现
如果存在多个数值相同的最大值点,批量标注所有点:
# 筛选所有最大值对应的行 max_rows = df[df['values'] == df['values'].max()] # 遍历逐行添加标注 for _, row in max_rows.iterrows(): fig.add_annotation( x=row['day-of-week'], y=row['values'], text=str(row['values']), yshift=10, showarrow=True, arrowhead=1 )
常用优化参数
- 调整标注文本格式:将
text参数改为f"最高值:{row['values']}"可自定义前缀后缀 - 隐藏箭头:设置
showarrow=False即可去掉标注指向点的箭头 - 调整偏移量:修改
yshift的数值可以调整标注和散点的垂直距离,x轴偏移可以用xshift参数
内容的提问来源于stack exchange,提问作者vvv
相关产品推荐
相关产品推荐

