[英]matplotlib/seaborn scatter plot with datetime object on x-axis and days with multiple entries
我有一个数据框,想在y轴上绘制请求完成的days
,以及在x轴上提交请求的天数( Received
,它是一个日期时间对象)的散点图。轴。
某人的“已接收”值有两个条目,因为有时会在同一天提交两个请求。
这是我的一些数据和我尝试过的代码:
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在下面的注释中指出的那样,您需要使用最新版本的熊猫才能使该例程正常工作。
您遇到了两种不起作用的情况。 sns.regplot
不适用于日期。 而且plt.plot
将需要指定数据( 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="")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.