gpt4 book ai didi

date - matplotlib plot_date()在指定日期添加垂直线

转载 作者:行者123 更新时间:2023-12-04 03:50:11 25 4
gpt4 key购买 nike

我的数据存储为pandas数据框。我使用matplotlib中的plot_date()函数创建了一个日期(对象格式)与百分位数(int64格式)的图表,并想在预先指定的日期添加一些垂直线。

我已经设法在预先指定的日期添加点标记,但是似乎找不到找到使它们成为垂直线的方法。

我在SO / SE上找到了各种有关如何向plot()添加垂直线的答案,但是在将数据转换为plot()可以使用的格式时遇到了麻烦,因此为什么要使用plot_date()。

样本数据:

date       percentile
2012-05-30 3
2014-11-25 60
2012-06-15 38
2013-07-18 16


我的图表绘制代码如下:

x_data = data["date"]
y_data = data["percentile"]

plt.figure()
plt.plot()

#create a scatter chart of dates vs. percentile
plt.plot_date(x = x_data, y = y_data)

#now add a marker at prespecified dates - ideally this would be a vertical line
plt.plot_date(x = '2012-09-21', y = 0)

plt.savefig("percentile_plot.png")
plt.close()


不幸的是,我无法提供当前输出的图像,因为代码位于无法访问Web的终端上。

非常感谢您的帮助-以及由于我是SO / SE的新手,我在提出问题方面也是如此。

谢谢。

最佳答案

在MatPlotLib 1.4.3中,此方法有效:

import datetime as dt

plt.axvline(dt.datetime(2012, 9, 21))


传递字符串样式的日期( 2012-09-21)不起作用,因为MPL不知道这是一个日期。无论使用什么代码加载文件,都可能从字符串中隐式创建 datetime对象,这就是为什么plot调用起作用的原因。

同样,在MPL 1.4.3中,我不需要调用 plt.plot_date(data['date'], ...),只要 plt.plot(data['date'], ...)列是 data['date']对象的列,只需调用 datetime就可以了。

祝好运。

关于date - matplotlib plot_date()在指定日期添加垂直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34742748/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com