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

输出

压缩的

图中的点表示异常值。

小提琴Plotly

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

让我们使用名为“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()

输出

阶段

箱线图中的四分位数和须线值显示在小提琴内部。由于小提琴图使用 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()

输出

不同之处

现在我们可以清楚地看到男性和女性之间的消费Behave。从剧情来看,我们可以很容易地说,男性比女性赚更多的钱。

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

例子

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

输出

多级