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

时间:2017-08-23 03:50:00

标签: python pandas numpy data-visualization bokeh

在片段周围盘旋并尝试与散景有关的食谱。在这里问这不是我期望的必要。

我有一个大型的结构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轴标签不是日期/月。

我对Bokeh文档非常失望,我发现它脱节,整个Bokeh体验出乎意料地差。今天早上发现尝试全息视图是完全相同的体验让我感到困惑我期待它是为它构建的......我期待这样一个简单的系列能够将它扔到直方图对象上,它只会做一些数量和简单的善良标签标签,但没有。令人难以置信的真实和每一篇涉及此事的帖子似乎都有一个截然不同的解决方案...

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

我很震惊,我不能做(somelibplease).histogram(df,' ACQ_DATE)或类似的 - 我不需要多种情节选项。 ' holoview'不幸的是,没有来过那里。

显然我是擅长在python中绘图,并且我在将来不会做太多事情而且不需要太多的功能/选项,因此花费数天和数天(实际需要几个月的时间)来学习实现这一目标的lib根本不是非常pythonic。

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

谢谢和干杯

1 个答案:

答案 0 :(得分:2)

既然你说过任何'在python中的库,这里有一个使用熊猫的解决方案' 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

enter image description here

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