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

如何在matplotlib常规折线图上标记K=20到25区间内的最小值点

实现方法

你可以按以下步骤修改代码,完成指定区间最小值的标记:

  1. 先截取K值20~25对应的数据段,计算该段的最小值和对应的K值
  2. 用plt.scatter接口绘制红色空心圆圈标注目标点

完整可运行代码:

import matplotlib.pyplot as plt

test_error_rates = [0.10777777777777775,
 0.09999999999999998,
 0.07444444444444442,
 0.07666666666666666,
 0.07222222222222219,
 0.06444444444444442,
 0.06444444444444442,
 0.06222222222222218,
 0.06000000000000005,
 0.06222222222222218,
 0.06222222222222218,
 0.06000000000000005,
 0.06222222222222218,
 0.06222222222222218,
 0.06000000000000005,
 0.05666666666666664,
 0.05555555555555558,
 0.05555555555555558,
 0.053333333333333344,
 0.053333333333333344,
 0.054444444444444406,
 0.05111111111111111,
 0.054444444444444406,
 0.054444444444444406,
 0.05666666666666664,
 0.05666666666666664,
 0.05555555555555558,
 0.05777777777777782,
 0.05777777777777782]

plt.plot(range(1,30),test_error_rates)
plt.ylabel('ERROR RATE')
plt.xlabel('K Neighbor')

# 处理K=20到K=25区间的最小值标记
# K从1开始,列表索引从0开始,所以K=20对应索引19,K=25对应索引24(左闭右开切片要取到25)
k_start, k_end = 20, 25
sub_rates = test_error_rates[k_start-1 : k_end]
min_sub_rate = min(sub_rates)
# 换算得到最小值对应的K值
min_k = k_start + sub_rates.index(min_sub_rate)

# 绘制红色空心圆圈标记,可按需调整参数
plt.scatter(min_k, min_sub_rate, s=100, facecolor='none', edgecolor='red', linewidth=2)

plt.show()

参数说明:

  • s=100:控制标记的大小,数值越大圆圈越大
  • facecolor='none':设置标记内部为透明,实现空心圆圈效果,删除该参数即可得到实心红色标记
  • edgecolor='red':设置圆圈边框为红色
  • linewidth=2:设置圆圈边框粗细

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 06:09:04