【问题标题】:Adding data labels to line graph in Matplotlib [duplicate]在 Matplotlib 中向折线图添加数据标签
【发布时间】:2021-12-25 13:19:21
【问题描述】:

我很难将数据标签添加到我正在创建的 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

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

【问题讨论】:

    标签: python matplotlib graph label


    【解决方案1】:

    在您的代码中,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(str(label), (x, y),
                         xycoords="data",
                         textcoords="offset points",
                         xytext=(0, 10), ha="center")
    
    plt.show()
    

    【讨论】:

    • 非常感谢您的快速回答!我想知道字符串的事情,本来可以找到的,但是我不在那个解决方案附近。
    • 我不确定 str 是否必要。您可以尝试将其删除。
    猜你喜欢
    • 2018-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-22
    • 2023-01-19
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多