【问题标题】:What are the arguments of seaborn's distplot used for?seaborn 的 distplot 的论点是用来做什么的?
【发布时间】:2019-11-04 13:29:48
【问题描述】:

我正在处理泰坦尼克号数据集。为了可视化数据的分布,我使用了 seaborn 绘图方法。但我无法理解distplot 的论点及其最终输出。 我想知道以下几行中使用的参数(参数)的使用,尤其是binsaxes[0]kde = False的使用。

ax = sns.distplot(women[women['Survived']==1].Age.dropna(), bins=18, 
                  label = survived, ax = axes[0], kde =False)

ax = sns.distplot(women[women['Survived']==0].Age.dropna(), bins=40, 
                  label = not_survived, ax = axes[0], kde =False)

我已经在文档中搜索了distplot并上网,但没有写清楚。

【问题讨论】:

  • bins 是您想要查看的柱数。 ax 是您要绘制到的轴(axes 显然包含两个轴,axes[0] 选择其中的第一个)。
  • 如何知道最佳的 bin 数量以及这对细节有何影响?
  • 垃圾箱越多,细节越多。 “最佳”没有明确定义。当然,你有年龄,而且它们是整数,不应该使用 113 个 bin,因为那样会过度采样数据。

标签: python-3.x plot visualization seaborn


【解决方案1】:
  1. 轴[0]

根据您的代码,我假设axes 应该是Axes 对象的列表,axes[0] 表示您访问列表中的第一个对象。当您使用ax=axes[0] 时,意味着您希望您的情节位于左侧。请看这个helpful post

  1. kde=假

默认情况下,seaborn 同时绘制kernel density estimation 和直方图,kde=False 表示您想要隐藏它并且只显示直方图。

  1. 垃圾箱

从统计上讲,直方图是一种非参数估计,其形状反映了数据的分布。箱的数量会影响形状。因此,如果您希望您的绘图代表您的数据分布,您不应该只是随机选择一个 bin 编号。决定合适的 bin 数量最常见的方法是使用Freedman–Diaconis rule,这也是.distplot() 中的默认设置。也就是说,当你使用.distplot()函数展示数据分布时,最好不要指定bin参数。

【讨论】:

    【解决方案2】:

    首先,我们尝试了解什么是distplot? Distplot 是 seaborn python 库的一个函数。表示如下:sns.seaborn()

    它用于绘制 seaborn 直方图

    现在,你的脑海中可能会出现疑问,为什么我要绘制直方图。直方图有助于以条形图显示数值类型数据集。

    在 y 轴上给出数字数据集,如您给出的 "women['Survived']==1"[women['Survived']==0]

    在 x 轴上给出 bin。这意味着将给定的数据集分布在特定范围内,并按照您给出的bins= 18bins = 40 显示在条形图中 enter image description here

    现在,我展示的是 seaborn sns.distplot() 的语法

    Syntax: sns.distplot(
                                         a,
                                         bins=None,
                                         hist=True,
                                         kde=True,
                                         rug=False,
                                         fit=None,
                                         hist_kws=None,
                                         kde_kws=None,
                                         rug_kws=None,
                                         fit_kws=None,
                                         color=None,
                                         vertical=False,
                                         norm_hist=False,
                                         axlabel=None,
                                         label=None,
                                         ax=None,
                                        )
    

    使用以上参数,可以很好的绘制直方图 按照这个很棒的教程来画seaborn histogram using sns.distplot

    【讨论】:

      猜你喜欢
      • 2019-01-11
      • 2021-05-24
      • 1970-01-01
      • 2015-10-20
      • 2017-12-29
      • 1970-01-01
      • 2016-08-05
      • 2011-07-17
      相关资源
      最近更新 更多