我有两个列表:一个包含字符串(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'
有人有想法吗?
答案 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()