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

Python 使用matplotlib注释绘图-显示绘图中的值,python,matplotlib,tkinter,Python,Matplotlib,Tkinter,我有两个列表:一个是字符串列表(liste_string),另一个是数字列表(liste_summe)。 带有字符串的列表包含作为字符串的日期值。 我想在绘图中显示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,

我有两个列表:一个是字符串列表(liste_string),另一个是数字列表(liste_summe)。 带有字符串的列表包含作为字符串的日期值。 我想在绘图中显示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()参数必须是字符串或数字,而不是“list”


有人有想法吗?

plt.annotate
无法处理列表。如图所示,它希望字符串作为第一个参数,坐标对作为第二个参数。因为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()

错误发生在哪一行?请记住,在报告错误时,请包含完整的回溯。如果需要帮助,您需要显示您的数据。如果我执行您的代码,我会遇到此错误:文件“C:\Python34\lib\site packages\matplotlib\dates.py”,第220行,在_to_ordinalf base=float(dt.toordinal())中如果matplotlib版本为1.5或更低,则可能无法使用。我有2.0版。好的,不知道出了什么问题。问题是我无法找到替代方案并测试它们,因为对我来说,这个解决方案已经在起作用了。(使用Python2.7和matplotlib 2.0)现在,由于您没有在问题中提供数据,所以获得另一个答案的机会很低。另外,由于
TypeError:float()参数的初始问题必须是字符串或数字,而不是“list”
通过这个答案得到解决,我可能会建议如下:您可以接受这个答案,并在一个新问题中使用这个答案中的代码,清楚地说明它报告工作(链接到这个问题),但您的系统出现错误(包括有关系统的完整信息以及完整的错误回溯)。在工作日发布这个新问题可能会更成功。