使用matplotlib注释绘图 - 在绘图中显示值

时间:2017-03-31 17:17:14

标签: python matplotlib tkinter

我有两个列表:一个包含字符串(liste_string)和一个包含数字的列表(liste_summe)。 带有字符串的列表包含Date-Values作为字符串。 我想在剧情中显示来自liste_summe的值,但它不起作用。

 plt.subplots_adjust(left=None, bottom=0.4, right=None, top=None, wspace=None, hspace=None)#Grösse des Fenster einrichten
plt.annotate(liste_summe, xy = (liste_summe, liste_datum))
plt.xticks(rotation = 90)#Schrägstellen der Beschriftung der x-Achse um x Grad
plt.ylim([y_min, y_max])
plt.plot(liste_string, liste_summe)
plt.show()

当我执行此代码时,我收到此错误:

TypeError: float() argument must be a string or a number, not 'list'

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

plt.annotate无法使用列表。如♠the documentation所示,它需要一个字符串作为其第一个参数,一个坐标对作为它的第二个参数。由于x值是日期,因此坐标元组中的第一个条目必须是日期(而不是反向)。为了注释所有点,你可以使用循环;每个点拨打plt.annotate一次注释。

import matplotlib.pyplot as plt

liste_summe = [1,2,3,1,4]
liste_datum = ["2017-02-05", "2017-02-06", "2017-02-09", "2017-02-12", "2017-02-24"]
liste_string = liste_datum

plt.figure()
plt.subplots_adjust(bottom=0.4)
for s, d in zip(liste_summe, liste_datum):
    plt.annotate(d, xy = (d,s ))
plt.xticks(rotation = 90)

plt.plot_date(liste_string, liste_summe)
plt.show()

enter image description here