Seaborn 简明教程

Seaborn - Plotting Categorical Data

在我们先前的章节中,我们了解了用于分析所研究的连续变量的散点图、六角形图和核密度估计图。当所研究的变量是分类变量时,这些图不适用。

当一个或两个所研究的变量是分类变量时,我们将使用 striplot()、swarmplot() 等图。Seaborn 提供了这么做的接口。

Categorical Scatter Plots

在本节中,我们将了解分类散点图。

stripplot()

在所研究变量之一为分类变量时使用 stripplot()。它以分类顺序沿任意一个轴表示数据。

Example

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

Output

box

在上图中,我们可以清楚地看到每个物种中 petal_length 的差异。但是,上述散点图的主要问题是散点图上的点重叠在一起。我们使用“抖动”参数来处理这种情况。

抖动会向数据添加一些随机噪声。此参数将调整沿分类轴的位置。

Example

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

Output

dots

现在,可以轻松地看到点的分布。

Swarmplot()

可以在 swarmplot() 函数中使用另一个选项作为“抖动”的替代。此函数将散点图的每个点定位在分类轴上,从而避免重叠点−

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

shades