簡體   English   中英

在matplotlib / seaborn中使用groupby繪制線圖?

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

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