为了账号安全,请及时绑定邮箱和手机立即绑定

matplotlib/seaborn 散点图,日期时间对象位于 x 轴上,日期有多个条目

matplotlib/seaborn 散点图,日期时间对象位于 x 轴上,日期有多个条目

小唯快跑啊 2021-11-09 17:00:44
我有一个数据框,想days在 y 轴上绘制完成请求所需的时间和在 x 轴上提交请求Received的日期(,这是一个日期时间对象)的散点图。'Received' 的值有两个条目,因为有时在同一天提交了两个请求。以下是我的一些数据和我尝试过的代码:Received          Days2012-08-01        41.0 2014-12-31       692.02015-02-25       621.02015-10-15       111.0sns.regplot(x=simple_denied["Received"], y=simple_denied["days"], marker="+", fit_reg=False)plt.plot('Received','days', simple_denied, color='black')
查看完整描述

2 回答

?
慕娘9325324

TA贡献1783条经验 获得超4个赞

您遇到了两种不起作用的情况。sns.regplot不适用于日期。并且plt.plot需要指定数据(它无法仅通过列名知道要使用哪些数据)。

因此,以下任何一项都会为您提供数据的散点图

  • sns.scatterplot(x="Received", y="days", data=simple_denied, marker="+")

  • sns.scatterplot(x=simple_denied["Received"], y=simple_denied["days"], marker="+")

  • plt.scatter(simple_denied["Received"].values, simple_denied["days"].values, marker="+")

  • plt.plot(simple_denied["Received"].values, simple_denied["days"].values, marker="+", ls="")

  • plt.plot("Received", "days", data=simple_denied, marker="+", ls="")


查看完整回答
反对 回复 2021-11-09
?
神不在的星期二

TA贡献1963条经验 获得超6个赞

让我们从设置数据开始。我实际上在您的示例数据集中添加了另一个日期“2014-12-31”,以便我们可以在同一天收到多个请求时验证我们的绘图例程是否有效:


import matplotlib.pyplot as plt

plt.style.use('seaborn')

import pandas as pd

import numpy as np


dates = np.array(['2012-08-01', '2014-12-31',

                  '2014-12-31', '2015-02-25',

                  '2015-10-15'], dtype='datetime64')


days = np.array([41, 692, 50, 621, 111])


df = pd.DataFrame({'Received' : dates, 'Days' : days})

创建的数据框应该有可能接近你所拥有的。生成您想要的散点图现在很简单:


fig, ax = plt.subplots(1, 1)


ax.scatter(df['Received'], df['Days'], marker='+')

ax.set_xlabel("Receieved")

ax.set_ylabel("Days")

这给了我以下情节:

//img1.sycdn.imooc.com//618a38e00001fc7606350422.jpg

正如@ImportanceOfBeingErnest 在下面的评论中所指出的,您需要最新版本的 Pandas 才能使此例程正常工作。

查看完整回答
反对 回复 2021-11-09
  • 2 回答
  • 0 关注
  • 287 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信