Seaborn - 观测值的分布



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

箱线图

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

箱线图通常在箱体上延伸有垂直线,称为须线。这些须线表示上四分位数和下四分位数之外的可变性,因此箱线图也称为箱须图箱须图。数据中的任何异常值都将作为单独的点绘制。

示例

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

图上的点表示异常值。

小提琴图

小提琴图结合了箱线图和核密度估计。因此,这些图更容易分析和理解数据的分布。

让我们使用名为 tips 的数据集来进一步了解小提琴图。此数据集包含与餐厅顾客给的小费相关的信息。

示例

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 中的较高密度部分落在小提琴图每个类别的同一区域。

上图显示了每周四天总账单的分布。但是,除了这些之外,如果我们想看看分布相对于性别的变化情况,让我们在下面的示例中探索它。

示例

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()

输出

Difference

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

并且,如果 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()

输出

Multistages
广告