Python 任何日期时间序列的简单直方图的绘图服务解决方案?散景或其他

Python any plot serving solution for a simple histogram of datetime series? Bokeh or Other

花了几天时间围绕着片段和尝试与散景相关的食谱。在这里问这个不是我期望的必要的。

我有一个很大的 CSV 结构:

ACQ_DATE
28/01/2017 0:00
28/01/2017 1:00
28/01/2017 2:00
29/01/2017 7:00
29/01/2017 7:00
30/01/2017 3:00
30/01/2017 3:00
30/01/2017 4:00
30/01/2017 4:00
31/01/2017 0:00
31/01/2017 9:00
...

我最终想提供交互式直方图,但现在即使是带有可读标签的简单图表也可以!!

随着该数据帧加载为 df,我最终得到了从一堆其他代码段中加扰的代码,所有这些代码段都试图以不同的方式做到这一点:

df['ACQ_DATE'] = pd.to_datetime(gdf['ACQ_DATE'])
df['DTI'] = df['ACQ_DATE']
df.set_index('DTI', inplace=True)

data = df.groupby(df["ACQ_DATE"].dt.month).count()

hist, edges = np.histogram(data)

p = figure()
p.quad(top=hist, bottom=0, left=edges[:-1], right=edges[1:], line_color="white")

main_row = row(p)
layout = column(main_row)

curdoc().add_root(layout)
curdoc().title = "Fire Points"

因此,对于此示例,它试图将数据分组为月份。

它给了我一个图,但是用数字作为 x 轴标签而不是 date/months。

我对 Bokeh 文档感到非常失望,我发现它脱节并且整个 Bokeh 体验出乎意料地差。今天早上发现尝试 holoviews 是完全相同的体验,这让我感到困惑我期待它的构建目的......我期待这样一个简单的系列能够将它扔到一个直方图对象上,它只会做一些看在上帝的份上,计数和简单的标签,但没有。真的令人难以置信,每一个 post 触及这个似乎都有一个截然不同的解决方案......

所以,我的问题是关于散景服务器的简单解决方案,但我很高兴看到任何使用另一个库的清晰简单的东西(呜呜呜,它只是一个 ts 直方图!)。

我很惊讶我不能做 (somelibplease).histogram(df, 'ACQ_DATE) 或类似的 - 我不需要大量的绘图选项。 'holoview' 不幸的是没有通过那里。

显然我是python中的绘图新手,以后我不会做很多事情,也不需要离谱features/options,所以花几天几天(实际上需要几个月methinks) 学习一个 lib 来实现这个似乎一点也不 pythonic。

去酒吧,不习惯被Python挫败!!非常感谢所有帮助。

感谢和干杯

既然你在 python 中说了 'any' 库,这里有一个使用 pandas' matplotlib 包装器的解决方案。

import pandas as pd

#Copying your data 
a = pd.read_clipboard(header = None, sep="s+")
a.columns = ['ACQ_DATE']
a['ACQ_DATE'] = pd.to_datetime(a['ACQ_DATE'])

对框架进行一些扩充,以便我可以获得绘制直方图的数据

date_groups = a.groupby(a['ACQ_DATE'].dt.date).size() 

date_groups
Out[44]: 
ACQ_DATE
2017-01-28    3
2017-01-29    2
2017-01-30    4
2017-01-31    2
dtype: int64

最后,使用pandas plot.bar()函数,

date_groups.plot.bar(width=1.0) # width = 1, to make this more like histogram


注意: 我同意 bokeh 文档有很多需要改进的地方。