我有一个DataFrame,其中每一行都是一个事件,它有一列datetime
值,用于指定事件的日期和时间。
我只想绘制每天的事件数量,并能够指定x轴的开始和结束日期。我怎么能这样做?
答案 0 :(得分:3)
考虑一个DF
,其中包含一个具有日期时间值的列,如下所示:
df = pd.DataFrame(pd.date_range('1/1/2016', periods=10, freq='D'), columns=['Date'])
将原始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()
答案 1 :(得分:0)
事件的数量/数量本质上是一个直方图,其中日期是您的日期时间列:
df.date = df.date.astype("datetime64")
df.groupby(df.date.dt.day).count().plot(kind="scatter")