Seaborn - 观察分布

在我们在上一章中处理的分类散点图中,该方法在它可以提供的关于每个类别中值分布的信息方面变得有限。 现在,更进一步,让我们看看有什么可以帮助我们进行类别比较。


箱线图

箱线图 是一种通过四分位数可视化数据分布的简便方法。

箱线图通常有从箱子延伸出来的垂直线,称为须线。 这些须线表示上四分位数和下四分位数之外的可变性,因此箱线图也称为box-and-whisker图和box-and-whisker图。 数据中的任何异常值都绘制为单独的点。

示例

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()

输出

Compressed

图中的点表示离群值。


小提琴图

小提琴图是箱形图与核密度估计的组合。 因此,这些图更易于分析和理解数据的分布。

让我们使用称为小提琴情节的技巧数据集来了解更多信息。 该数据集包含与餐厅顾客提供的小费相关的信息。

示例

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill", data=df)
plt.show()

输出

Stages

箱线图中的四分位数和须线值显示在小提琴内部。 由于小提琴图使用 KDE,小提琴的较宽部分表示较高的密度,较窄的区域表示相对较低的密度。 箱线图中的四分位数范围和 kde 中的较高密度部分落在每个小提琴图类别的同一区域。

上图显示了 total_bill 在一周中的四天的分布情况。 但是,除此之外,如果我们想了解分布在性别方面的表现如何,让我们在下面的示例中进行探索。

示例

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill",hue = 'sex', data = df)
plt.show()

输出

差异

现在我们可以清楚地看到男性和女性之间的消费行为。 我们可以很容易地说,通过看情节,男性比女性赚更多的钱。

而且,如果 hue 变量只有两个类别,我们可以通过在给定的一天将每把小提琴分成两把而不是两把小提琴来美化情节。 小提琴的任一部分都引用 hue 变量中的每个类。

示例

import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y="total_bill",hue = 'sex', data = df)
plt.show()

输出

多级