[英]Plot dates with Pandas and Seaborn
我有一個DataFrame,其中的每一行都是一個事件,它有一列datetime
值,用於指定事件的日期和時間。
我只想繪制每天的事件量,並能夠指定x軸的開始和結束日期。 我怎樣才能做到這一點?
考慮包含一個具有日期時間值的單列的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
函數將日期保持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()
事件的數量/數量實質上是一個直方圖,其中date是您的datetime列:
df.date = df.date.astype("datetime64")
df.groupby(df.date.dt.day).count().plot(kind="scatter")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.