📜  使用 Seaborn 在Python中分组箱线图

📅  最后修改于: 2022-05-13 01:55:21.250000             🧑  作者: Mango

使用 Seaborn 在Python中分组箱线图

箱线图描绘了定量数据的分布,便于在不同变量(连续变量或分类变量)之间进行比较。它是一种常见的数据分散度量。箱线图由一个五位数的摘要组成,有助于检测和删除数据集中的异常值。

  1. 最小观察
  2. 第一季度(25% 或四分之一)
  3. 中位数或 Q2
  4. Q3(75% 或四分位数 2)
  5. 最大观察

分组箱线图用于可视化具有多个子组的数据。此外,我们可以使用分组箱线图一次可视化三个变量,其中一个变量是数字变量,另外两个变量是分类变量。

我们将使用Python的 Seaborn 库来创建分组箱线图。我们将使用来自 Seaborn 库的数据集“提示”。

Python3
# import seaborn library
import seaborn as sns
  
# load the dataset
data = sns.load_dataset('tips')
  
# view the dataset
print(data.head(5))


Python3
# create grouped boxplot 
sns.boxplot(x = data['day'],
            y = data['total_bill'],
            hue = data['sex'])


Python3
# create another grouped boxplot 
sns.boxplot(x = data['day'],
            y = data['total_bill'],
            hue = data['smoker'],
            palette = 'Set2')


Python3
# create 3rd grouped boxplot 
sns.boxplot(x = data['day'],
            y = data['total_bill'],
            hue = data['size'],
            palette = 'husl')


输出:

示例 1:让我们创建一个箱线图来了解“tips”数据集的每一“天”上“total_bill”的分布。但我们也想根据“性别”属性对其进行分组。因此,我们将为这三个属性绘制分组箱线图,其中 'sex' 和 'day' 是分类属性,而 'total_bill' 是数字属性。

蟒蛇3

# create grouped boxplot 
sns.boxplot(x = data['day'],
            y = data['total_bill'],
            hue = data['sex'])

输出:

示例 2:下一个示例与上一个示例类似。唯一的区别是作为 'smoker' 属性的 'hue' 参数的值。在这里,我们想根据一个人是否吸烟来了解 'total_bill' 与 'day' 组的分布。

此外,我们还学习了如何使用 boxplot() 的“调色板”属性更改箱线图的颜色。

蟒蛇3

# create another grouped boxplot 
sns.boxplot(x = data['day'],
            y = data['total_bill'],
            hue = data['smoker'],
            palette = 'Set2')

输出:

示例 3:在本示例中,我们将介绍如何绘制 2 个以上的分组箱线图。如果 'hue' 参数的值有 2 个以上的类别,那么我们可以绘制 2 个以上的分组箱线图,如下所示。

在这里, 'hue' = data['size']有六个类别,因此我们可以使用与上述相同的方法看到 2 个以上的分组箱线图。

蟒蛇3

# create 3rd grouped boxplot 
sns.boxplot(x = data['day'],
            y = data['total_bill'],
            hue = data['size'],
            palette = 'husl')

输出: