在 Matplotlib 中向折线图添加数据标签

Adding data labels to line graph in Matplotlib

我很难设法将数据标签添加到我正在创建的 matplotlib 图。在条形图上我没有问题。 为了更容易排除故障,我尽可能地简化了它,但仍然存在同样的问题。

找了好久都没找到答案...

import matplotlib.pyplot as plt

dates = [10,11,12]
temp = [10,14,12]

temp_labels = plt.plot(dates,temp)

for x in temp_labels:
        label = temp[x]

        plt.annotate(label,
                     (x,temp[x]),
                     textcoords = "offset points"),
                     xytext = (0,10),
                     ha = "center")

plt.show()

我有一个错误:

Traceback (most recent call last):
   File "rain_notif.py", line 16, in <module>
       label = temp[x]
TypeError: list indices must be intergers or slices, not Line2D

这是我所拥有的,我只想在每个点的顶部标注 value 标签。 Figure without label

在您的代码中,temp_labels 是一个行列表,因此 x 是一个行对象,不能用于索引列表,如错误所示。从这里开始:

import matplotlib.pyplot as plt

dates = [10,11,12]
temp = [10,14,12]

plt.plot(dates,temp)

for x, y in zip(dates, temp):
    label = y
    plt.annotate(label, (x, y),
                 xycoords="data",
                 textcoords="offset points",
                 xytext=(0, 10), ha="center")

plt.show()