Seaborn 简明教程

Seaborn - Distribution of Observations

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

Box Plots

Boxplot 是通过四分位数可视化数据分布的便捷方式。

盒状图通常具有从称为须盒子的盒子延伸出的垂直线。这些须反映了上四分位数和下四分位数之外的可变性,因此盒状图也被称为 box-and-whisker 图和 *盒须 *图。数据中的任何异常值都以单个点的形式绘制。

Example

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

Output

compressed

绘图上的点表示异常值。

Violin Plots

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

利用名为的提示数据集以进一步了解小提琴图。此数据集包含有关顾客在餐厅中给出的提示的信息。

Example

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

Output

stages

箱线图的四分位数和须值从盒中显示。由于小提琴图使用 KDE,小提琴较宽的部分表示较高密度,而较窄区域表示较低密度。盒线图中的四分位间距和小提琴图每个类别中 KDE 中的较高密度部分位于同一区域。

上图显示了四天里 total_bill 的分布。但是,除此之外,如果我们想了解如何根据性别来分布,让我们在下面的示例中进行探索。

Example

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

Output

differnce

现在,我们可以清楚地看到男性和女性之间的消费行为。我们可以通过查看该图轻松地说,男性比女性多付账单。

并且,如果色调变量只有两个类别,我们可以通过在特定天内将每个小提琴分成两个部分而不是两个小提琴的方式来美化该图。小提琴的任一部分都表示色调变量中的每个类别。

Example

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

Output

multistages