我有以下数据集(缩写,但仍传达相同的想法)。我想说明用户分数如何随时间变化(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
答案 0 :(得分:0)
根据您显示的示例数据,您的postDate系列已经是pandas datetime值。因此,要在X轴上绘制日期,matplotlib中的关键是使用plot_date,而不是绘图。像这样:
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()
答案 1 :(得分:-2)
之前我使用过plotly,如果您使用的是Jupyter Notebook,这是一个非常好的选项来进行交互式可视化。您可以使用袖扣在Jupyter中生成htmls
或内联图。它仅用于在某处托管您的图形,但我可以免费使用它进行自己的数据分析。
安装情节和袖扣,袖扣几乎可以立即用pandas dfs做好情节。
例如你可以这样做:
your_df.iplot(x='postDate', y='userScore')
这将自动为您提供您描述的“时间序列”。