具有x轴上的DateTime对象和具有多个条目的日期的matplotlib/seborn散点图 [英] matplotlib/seaborn scatter plot with datetime object on x-axis and days with multiple entries

查看:38
本文介绍了具有x轴上的DateTime对象和具有多个条目的日期的matplotlib/seborn散点图的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个数据框,我想用散点图表示y轴上完成请求所需的时间days和x轴上请求提交的日期(Received,这是一个DateTime对象)。

"已接收"的某人值有两个条目,因为有时两个请求在同一天提交。

以下是我的一些数据和我尝试过的代码:

Received          Days
2012-08-01        41.0 
2014-12-31       692.0
2015-02-25       621.0
2015-10-15       111.0

sns.regplot(x=simple_denied["Received"], y=simple_denied["days"], marker="+", fit_reg=False)


plt.plot('Received','days', simple_denied, color='black')

推荐答案

让我们从设置数据开始。我实际上向您的示例数据集添加了另一个日期‘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")

这给了我以下情节:

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

这篇关于具有x轴上的DateTime对象和具有多个条目的日期的matplotlib/seborn散点图的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆