与熊猫和Seaborn一起绘制日期

时间:2016-10-28 15:27:03

标签: python pandas matplotlib seaborn

我有一个DataFrame,其中每一行都是一个事件,它有一列datetime值,用于指定事件的日期和时间。

我只想绘制每天的事件数量,并能够指定x轴的开始和结束日期。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

考虑一个DF,其中包含一个具有日期时间值的列,如下所示:

df = pd.DataFrame(pd.date_range('1/1/2016', periods=10, freq='D'), columns=['Date'])

enter image description here

将原始DF的示例连接到自身以创建重复值(例如,5)

df_dups = pd.concat([df, df.sample(n=5, random_state=42)], ignore_index=True)

通过将其堆叠成一个系列对象来计算它的唯一计数。

plotting_df = df_dups.stack().value_counts().reset_index(name='counts')

分散图:

由于x轴和y轴只支持数值作为内置散点图方法的args,我们必须调用matplotlib轴对象的plot_date函数来保留日期。

fig, ax = plt.subplots()
ax.plot_date(plotting_df['index'], plotting_df['counts'], fmt='.', color='k')
ax.set_ylim(0, plotting_df['counts'].values.max()+1)
fig.autofmt_xdate()
plt.xlabel('Date')
plt.ylabel('Counts')
plt.show()

Image

答案 1 :(得分:0)

事件的数量/数量本质上是一个直方图,其中日期是您的日期时间列:

df.date = df.date.astype("datetime64")
df.groupby(df.date.dt.day).count().plot(kind="scatter")