首页 > 解决方案 > 当我只传递没有 x、y 数据参数的整个数据帧时,箱形图显示什么结果?

问题描述

我正在使用 python 库学习可视化。我正在玩内置的“提示”数据集。我注意到即使我没有提供任何参数,例如 x = 、 y= 、 data =,seaborn 也会绘制数据。这是我尝试过的:

import pandas as pd
import seaborn as sns
tips_data = sns.load_dataset("tips")
tips_data.head()
sns.boxplot(tips_data.iloc[:,[0,1]])
sns.boxplot(data=tips_data.iloc[:,[0,1]])

如果您运行这些命令,您会注意到第一个箱线图命令绘制了一个箱线图,该箱线图与任一列的箱线图、均值或总和不同。

第二个箱线图命令正确,在相同的轴上绘制了两个箱线图——一个用于提示,另一个用于 total_bill。

当没有指定参数 arg 时,有人可以告诉我们究竟在绘制什么吗?

我试着在这里查看 seaborn 文档!但没有找到答案。

标签: pythonseabornboxplot

解决方案


情况1

sns.boxplot(tips_data.iloc[:,[0,1]])相当于

sns.boxplot(x=tips_data.iloc[:,[0,1]])

即,第一个论点是x。这被解释为输入中的所有数据都将沿 x 轴分布。更容易理解的是,这可能是两列的扁平二维数组,

sns.boxplot(x=tips_data.iloc[:,[0,1]].values.flatten())

案例2

如果改为使用sns.boxplot(data=tips_data.iloc[:,[0,1]]),则不给出xy。因此,它们需要被解释,这是按列完成的。然后,您将获得每列一个箱线图。


该文档指出:

输入数据可以以多种格式传递,包括:

  • 表示为列表、numpy 数组或 pandas Series 对象的数据向量直接传递给 x、y 和/或 hue 参数。[情况1]
  • “长格式” DataFrame,在这种情况下,x、y 和色调变量将决定数据的绘制方式。
  • 一个“宽格式”的 DataFrame,这样每个数字列都会被绘制出来。一个数组或向量列表。【案例二】

我从文档中的问题中标记了两个案例。


推荐阅读