【问题标题】:Seaborn – how to interpret the values of the x-axis in a distplot?Seaborn – 如何在 distplot 中解释 x 轴的值?
【发布时间】:2017-08-22 14:45:11
【问题描述】:

我有一个数据框,其中每一行都代表一个日期,其中在数据库中记录了许多事件。

每个事件都有一个相关的日期,例如,在 2017-02-03 记录的事件可能属于 2017-02-02(这意味着它是在事件发生后的第二天记录的)。

我正在尝试在 distplot 中可视化每一列的分布,以了解记录事件的时间与相关日期之间的距离(“人们是否在同一天记录事件,当天之后,甚至之后?”)。

到目前为止,我已经制作了一个迭代每一列并将其绘制到 seaborn distplot 中的函数。

def plot(dates):
    plt.figure(figsize=(45,25))
    for date in dates:
        sns.distplot(df[date], kde=False, bins=len(dates))
    return

情节如下所示:

但是,我不明白如何解释 x 轴上的值。

它显示的范围是 0 - 3500,这是什么意思?

还有其他更好的可视化方法吗?

【问题讨论】:

  • 你能更好地解释数据框实际包含的内容吗?行中的日期是什么意思,列中的日期是什么意思,数据框中的数字是什么?
  • @ImportanceOfBeingErnest 行索引是记录事件的日期,列标题中的日期是事件发生的日期。例如,在 2017 年 2 月 2 日,前一天 (2017 年 2 月 1 日) 记录了 1092 个事件,同一天 (2017 年 2 月 2 日) 发生了 3136 个事件。行的总和将为您提供当天记录的总事件,而列的总和将提供当天发生的总事件。
  • 我认为这里令人困惑的是,显然您可以在实际发生之前记录事件,例如2017-02-02 记录了 20 个事件,这些事件仅在 8 天后(2017-02-10)发生。
  • 是的,没错。这些事件基本上是“会议”,因此人们可以在它们发生之前记录它们,即使这不是“正确”的过程。

标签: python pandas seaborn


【解决方案1】:

sns.distplot 是直方图。这意味着它显示了某个值落入某个 bin 的频率。

在这里,您计算每列的直方图。因此,在图中您会发现多久某个出现在此列中。 “多久”是y轴,是x轴。

因为您正在为数据帧的每一列 n 执行此操作,所以您最终会得到 n 不同的直方图(每个都有不同的颜色)。

例如,每列中只有一个值高于 3000,因此您会在图中看到一个 3000 附近的小条。另一方面,每列中有许多介于 0 和 100 之间的值,因此您会在 0 附近看到一个大条。

【讨论】:

  • 是的,我实际上想在同一个图中绘制多个直方图(看看它们是否大部分重叠,或者它们是否相似)。我想当我应该使用其他东西时,我可能会错误地使用 distplot。我想知道的是“记录的大多数事件距离事件发生之日有多远?”。有没有更好的情节?
【解决方案2】:

在您当前的脚本中,您循环遍历数据并将所有输出绘制在同一个图中。在您提供的示例图中,x 轴显示 2017 年 2 月 28 日发生的事件,我假设这是您数据集中的最后日期。但是,不同的颜色表示来自其他日期的数据,这些数据绘制在循环内的同一图中。关于绘图的解释:x轴显示每天的事件数量:在图的右侧可以看到通常只有一天有大量(> 1000左右)的事件是记录器.从图的左侧可以看出,大约有 50 天的时间只记录了一个事件。一个简单的条形图可能更容易解释:它将在 x 轴上显示日期,在 y 轴上显示记录的事件数。 您可以通过如下修改函数为每个日期绘制并保存单独的条形图:

def plot(dates):
  for date in dates:
    plt.figure()
    plt.bar(np.arange(0,len(dates)),df[date], width=1.0)
    ax=plt.gca()
    ax.set_xticks(np.arange(0,len(dates)),)+0.5)
    ax.set_xticklabels(dates)
    plt.savefig('barchart_'+date+'.png')
    return

可能有比这更优雅的方法来研究您的数据,但我希望这有助于您前进。

【讨论】:

    猜你喜欢
    • 2017-12-29
    • 2021-03-06
    • 2019-02-07
    • 2019-01-11
    • 1970-01-01
    • 2017-09-19
    • 2015-05-25
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多