Python Matplotlib 折线图添加标注点:字符坐标轴和索引错误处理
Python Matplotlib 折线图添加标注点:字符坐标轴和索引错误处理
本文将介绍如何使用 Python 的 matplotlib 库绘制折线图,并在指定点添加标注,同时处理字符坐标轴和索引错误问题。在一些情况下,我们可能需要在折线图中添加一些特定的标注点,这些点可能对应于某些特定的数据点。同时,我们可能希望使用字符串来表示 X 轴的坐标。
然而,当我们尝试在这些点上添加标注时,可能会遇到 IndexError 错误,因为提供的索引可能超出数据列表的范围。本文将演示如何通过添加判断条件来避免此类错误,确保标注点仅在有效的坐标范围内显示。
代码示例
以下代码展示了如何绘制折线图并添加标注,同时避免索引错误:
import matplotlib.pyplot as plt
x1 = ['1', '2', '4', '6', '7']
y11 = [10, 8, 7, 5, 9]
y21 = [3, 5, 6, 2, 4]
markers1 = [2, 4]
fig, ax4 = plt.subplots()
ax4.plot(x1, y11, color='b', marker='o', label='y11')
ax4.plot(x1, y21, color='r', marker='s', label='y21')
for i in markers1:
    if i - 1 < len(x1):
        ax4.plot(x1[i - 1], y21[i - 1], color='r', marker='s', markersize=12)
        ax4.annotate(f'y21[{i}]', xy=(x1[i - 1], y21[i - 1]), xytext=(-10, 10), textcoords='offset points', ha='center', va='bottom')
ax4.set_xticks(range(len(x1)))
ax4.set_xticklabels(x1)
ax4.set_xlabel('x')
ax4.set_ylabel('y')
ax4.legend()
plt.show()
解决方案
在上面的代码中,我们添加了一个判断条件:if i - 1 < len(x1):。此条件确保 markers1 中的每个元素对应的索引 i - 1 都在 x1 列表的范围内,避免出现 IndexError 错误。
运行结果

总结
本文介绍了如何使用 Python 的 matplotlib 库绘制折线图,并在指定点添加标注。我们还讨论了如何避免常见的 IndexError 错误,确保标注点仅在有效的坐标范围内显示。通过添加判断条件,我们可以确保代码的可靠性和正确性,避免程序崩溃。
原文地址: https://www.cveoy.top/t/topic/nBH4 著作权归作者所有。请勿转载和采集!