[英]Plotting line plot with groupby in matplotlib/seaborn?
我有以下數據集(略,但仍傳達相同的想法)。 我想展示用戶分數如何隨時間變化(postDate傳達時間)。 數據也由postDate
。 希望看到一個不錯的情節(如果可能,可能使用seaborn),其得分為y軸,時間為x軸,並顯示用戶隨時間的得分(每個用戶使用單獨的一行)。 我是否需要將postDate
(當前為字符串)轉換為另一種格式才能進行漂亮的繪制? 非常感謝!
userID postDate userScore (1-10 scale)
Mia1 2017-01-11 09:07:10.616328+00:00 8
John2 2017-01-17 08:05:45.917629+00:00 6
Leila1 2017-01-22 07:47:67.615628+00:00 9
Mia1 2017-01-30 03:45:50.817325+00:00 7
Leila 2017-02-02 06:38:01.517223+00:00 10
根據樣本數據,您顯示postDate系列已經是熊貓的datetime值。 因此,要在X軸上繪制日期,matplotlib中的關鍵是使用plot_date而不是plot。 像這樣:
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
for key, g in df.groupby['userID']:
ax.plot_date(g['postDate'], g['userScore'], label=key)
ax.legend()
我以前使用過plotly ,如果您使用Jupyter Notebook,這是進行交互式可視化的一個非常好的選擇。 您生成htmls
在Jupyter與袖扣或情節在線。 它僅是在某處托管圖形而支付的,但我免費使用它進行自己的數據分析。
安裝plotly以及袖扣,袖扣幾乎可以立即通過pandas dfs進行繪制。
例如,您可以這樣做:
your_df.iplot(x='postDate', y='userScore')
這將自動為您提供您描述的“時間序列”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.