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