簡體   English   中英

matplotlib / seaborn散點圖,在x軸上有datetime對象,並在日期中有多個條目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM