Matplotlib绘图:如何为for循环采样点添加迭代序号标识
Matplotlib 样本点旁标注循环序号实现方案
核心思路
- 图例仅保留统一
samples标签:只在首轮循环传入label参数,后续循环不设置label,避免图例生成多条重复条目 - 数据点旁标注序号:每绘制一个点,调用
plt.text()在点的坐标基础上增加微小偏移,写入对应的迭代序号即可,偏移量可根据自身数据的坐标轴尺度调整,避免文字遮挡标记点。
可直接运行的参考代码
for i in range(len(X_sample)): # 仅第一次绘制时设置标签,防止图例重复 plot_label = 'samples' if i == 0 else "" plt.plot(X_sample[i], Y_sample[i], 'kx', mew=3, color="green", label=plot_label) # 在点旁标注序号,xy方向偏移量可按需调整 plt.text( X_sample[i] + 0.02, Y_sample[i] + 0.02, str(i), fontsize=10, color="green" ) # 渲染图例 plt.legend()
注:代码里的0.02是适配0-1取值范围的偏移量,如果你的数据值域更大,比如x轴范围是0-100,对应把偏移量改成1~3即可,保证序号文字和叉形标记不重叠。
内容的提问来源于stack exchange,提问作者Ben
相关产品推荐
相关产品推荐

