簡體   English   中英

matplotlib在熊貓DataFrame中繪制日期時間

[英]matplotlib plot datetime in pandas DataFrame

我有一個看起來像此training.head()的pandas DataFrame

在此處輸入圖片說明

DataFrame已按日期排序。 我想作一個散點圖,其中活動日期在x軸上,成功率在y軸上。 我能夠通過使用training.plot(x='date',y='rate')獲得線形圖。 但是,當我將其更改為training.plot(kind='scatter',x='date',y='rate') ,出現錯誤:KeyError:u'沒有名為date的項目

為什么我嘗試創建散點圖時索引列會消失? 另外,我敢打賭,我需要對該日期字段進行某些操作,以免將其當作簡單的字符串來對待,不是嗎?

額外的信用,如果我希望每個帳號都用不同的顏色繪圖怎么辦?

如果我沒記錯的話,繪圖代碼僅考慮數字列。 在內部,它僅選擇數字列,所以這就是為什么會出現鍵錯誤的原因。

date什么? 如果它是datetime64 ,則可以將其重鑄為np.int64

df['date_int'] = df.date.astype(np.int64)

然后您就可以了。

對於顏色部分,制作一個{account number: color}的字典。 例如:

color_d = {1: 'k', 2: 'b', 3: 'r'}

然后當您繪圖時:

training.plot(kind='scatter',x='date',y='rate', color=df.account.map(color_d))

我發現將折線圖的style更改為不包括連接線更加簡單:

cb_df.plot(figsize=(16, 6), style='o')

在此處輸入圖片說明

繪圖代碼僅考慮數字列,因此下面的代碼會給您錯誤:

df['Date'] = pd.to_datetime(df.Date) 

嘗試pd.to_numeric下面和finnaly使用scatter plot 它為我工作!

df['Date'] = pd.to_numeric(df.Date)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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