簡體   English   中英

與Pandas和Seaborn的約會日期

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM