【问题标题】:Problems while plotting label vs datetime in a pandas column? [duplicate]在熊猫列中绘制标签与日期时间时出现问题? [复制]
【发布时间】:2018-12-02 07:08:42
【问题描述】:

我有以下 pandas 数据框,其中包含日期时间时间戳和用户 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 轴上排列每个标签并将其与 x 轴上的 datime 值相对应.关于如何做这样的事情的任何想法:

此图的全部目标是可视化该特定用户的每次登录次数。

【问题讨论】:

  • 您可能需要显示您想要的输出,即使这意味着要绘制一个图像版本。
  • 我更新了预期输出@Parfait 的样本

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


【解决方案1】:

这样的?

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()

输出:

【讨论】:

  • 您好,感谢您的帮助,这很有帮助,但是,我的 pandas 数据框非常大,我有很多 id,有没有办法在图像中正确显示所有这些 id?跨度>
猜你喜欢
  • 2020-09-12
  • 1970-01-01
  • 2015-06-10
  • 2012-09-06
  • 2014-02-24
  • 2014-10-14
  • 2021-06-17
  • 2018-12-07
  • 1970-01-01
相关资源
最近更新 更多