繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM