[英]Annotate a plot using matplotlib - showing values in the plot
我有两个列表:一个带有字符串的列表(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() argument must be a string or a number, not '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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.