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

matplotlib折线图仅标注最大最小值点文本避免重叠的实现问题

解决方案

核心逻辑:先定位到SYS列的最大值、最小值对应的数据点,仅对这两个点位添加文本标注即可,同时注意画布参数配置要放在绘图操作前才会生效。

修改后完整代码

import matplotlib.pyplot as plt
import pandas as pd # 若已提前导入可省略该行

# 提前配置画布尺寸,放在绘图前才会生效
plt.rcParams['figure.figsize'] = (15, 10)

x = df['Measurement Date']
y = df['SYS']

# 绘制折线图
plt.plot(x, y)

# 定位最大值、最小值对应的行
max_row = df[df['SYS'] == df['SYS'].max()].iloc[0]
min_row = df[df['SYS'] == df['SYS'].min()].iloc[0]

# 给最大值加标注,y+2是向上偏移避免和点重叠,参数可自行调整
plt.text(x=max_row['Measurement Date'], y=max_row['SYS'] + 2, 
         s='{:.0f}'.format(max_row['SYS']), 
         color='red', fontweight='bold')

# 给最小值加标注,y-2是向下偏移
plt.text(x=min_row['Measurement Date'], y=min_row['SYS'] - 2, 
         s='{:.0f}'.format(min_row['SYS']), 
         color='green', fontweight='bold')

plt.show()

可选优化说明

  • 如果存在多个数值相同的最大值/最小值,可去掉iloc[0],循环遍历所有符合条件的行添加标注
  • 文本的偏移量、颜色、字体大小可根据实际显示效果自行调整

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:48:00