在熊猫列中绘制标签与日期时间时出现问题吗?

时间:2018-06-22 18:58:04

标签: python python-3.x pandas matplotlib seaborn

我有以下熊猫数据框,其中包括日期时间时间戳和用户ID:

  id        datetime
  130    2018-05-17 19:46:18
  133    2018-05-17 20:59:57
  131    2018-05-17 21:54:01
  142    2018-05-17 22:49:07
  114    2018-05-17 23:02:34
  136    2018-05-18 06:06:48
  324    2018-05-18 12:21:38
  180    2018-05-18 12:49:33
  120    2018-05-18 14:03:58
  120    2018-05-18 15:28:36

如何在y轴上绘制id,在x轴上绘制日期或分钟?我试图:

plt.plot(df3['datatime'], df3['id'], '|')
plt.xticks(rotation='vertical')

但是,我有两个问题,我的数据帧很大,并且我有多个ID,第二个问题是我无法将每个标签排列在y轴上,并针对其datime值在x轴上进行绘制。关于如何做这样的任何想法:

example

此图的整个目标是可视化该特定用户每次的登录信息。

1 个答案:

答案 0 :(得分:0)

像这样吗?

X轴:日期,Y轴:id

from datetime import date
import matplotlib.dates as mdates
import matplotlib.pyplot as plt
import pandas as pd

# set your data as df
# strip only YYYY-mm-dd part from original `datetime` column
df.datetime = df.datetime.apply(lambda x: str(x)[:10])
df.datetime = df.datetime.apply(lambda x: date(int(x[:4]), int(x[5:7]), int(x[8:10])))

# plot
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%Y-%m-%d'))
plt.gca().xaxis.set_major_locator(mdates.DayLocator())
plt.plot(df.datetime, df.id, '|')
plt.gcf().autofmt_xdate()

输出:

enter image description here