Python 绘制 datetime.date 熊猫
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/41815126/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Plot datetime.date pandas
提问by guy
I created a pandas dataframe from some value counts on particular calendar dates. Here is how I did it:
我从特定日历日期的某些值计数创建了一个 Pandas 数据框。这是我如何做到的:
time_series = pd.DataFrame(df['Operation Date'].value_counts().reset_index())
time_series.columns = ['date', 'count']
Basically, it is two columns, the first "date" is a column with datetime.date
objects and the second column, "count" are simply integer values.
基本上,它是两列,第一个“日期”是包含datetime.date
对象的列,第二列“计数”只是整数值。
Now, I'd like to plot a scatter or a KDE to represent the value changes over the calendar days, but how?
现在,我想绘制散点图或 KDE 来表示日历日内的值变化,但如何绘制?
I looked at the dataframe and it all looks in order and exactly as I describe above. But when I try:
我查看了数据框,一切看起来都井井有条,正如我上面描述的那样。但是当我尝试:
time_series.plot(kind='kde')
plt.show()
I get a plot where the x-axis is from -50 to 150 as if it is parsing the datetime.date
objects as integers somehow. Also, it is yielding two identical plots rather than just one.
我得到一个图,其中 x 轴从 -50 到 150,好像它datetime.date
以某种方式将对象解析为整数。此外,它产生了两个相同的图,而不仅仅是一个。
Any idea how I can plot them and see the calendars day along the x-axis?
知道如何绘制它们并沿 x 轴查看日历日吗?
回答by epattaro
you sure you got datetime? i just tried this and it worked fine:
你确定你有约会时间?我刚试过这个,效果很好:
df = date count
7 2012-06-11 16:51:32 1.0
3 2012-09-28 08:05:14 12.0
19 2012-10-01 18:01:47 4.0
2 2012-10-03 15:18:23 29.0
6 2012-12-22 19:50:43 4.0
1 2013-02-19 19:54:03 28.0
9 2013-02-28 16:08:40 17.0
12 2013-03-12 08:42:55 6.0
4 2013-04-04 05:27:27 6.0
17 2013-04-18 09:40:37 29.0
11 2013-05-17 16:34:51 22.0
5 2013-07-07 14:32:59 16.0
14 2013-10-22 06:56:29 13.0
13 2014-01-16 23:08:46 20.0
15 2014-02-25 00:49:26 10.0
18 2014-03-19 15:58:38 25.0
0 2014-03-31 05:53:28 16.0
16 2014-04-01 09:59:32 27.0
8 2014-04-27 12:07:41 17.0
10 2014-09-20 04:42:39 21.0
df = df.sort_values('date', ascending=True)
plt.plot(df['date'], df['count'])
plt.xticks(rotation='vertical')
EDIT:
编辑:
if you want a scatter plot you can:
如果你想要一个散点图,你可以:
plt.plot(df['date'], df['count'], '*')
plt.xticks(rotation='vertical')