使用 Seaborn 在Python中分组箱线图
箱线图描绘了定量数据的分布,便于在不同变量(连续变量或分类变量)之间进行比较。它是一种常见的数据分散度量。箱线图由一个五位数的摘要组成,有助于检测和删除数据集中的异常值。
- 最小观察
- 第一季度(25% 或四分之一)
- 中位数或 Q2
- Q3(75% 或四分位数 2)
- 最大观察
分组箱线图用于可视化具有多个子组的数据。此外,我们可以使用分组箱线图一次可视化三个变量,其中一个变量是数字变量,另外两个变量是分类变量。
我们将使用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')
输出: