蜂群图(Swarm Plot)是一种用于可视化分类数据分布的图表类型。它将数据点沿着一个或多个分类变量轻微地分散,以避免它们之间的重叠,从而更好地显示数据的分布密度和分布趋势。蜂群图特别适用于较小的数据集。
下面通过一个简单的例子来说明蜂群图的概念:
假设我们有一个包含 “day”(星期几)和 “total_bill”(总账单金额)的数据集,其中包含吸烟者和非吸烟者的信息。我们想要查看每天总账单金额的分布情况,并根据是否吸烟者的信息进行区分。
import seaborn as sns
import matplotlib.pyplot as plt
# 创建一个示例数据集
data = {
'day': ['Thur', 'Fri', 'Sat', 'Sun', 'Thur', 'Fri', 'Sat', 'Sun'],
'total_bill': [20.5, 15.3, 35.4, 24.7, 12.5, 18.1, 40.3, 30.5],
'smoker': ['No', 'No', 'Yes', 'No', 'Yes', 'No', 'Yes', 'No']
}
tips = sns.load_dataset("tips")
# 创建蜂群图
sns.catplot(data=tips, kind="swarm", x="day", y="total_bill", hue="smoker")
# 显示图形
plt.show()
在这个例子中,蜂群图将每个数据点(表示不同天的总账单金额)沿着 “day” 轴分散开来,避免了它们之间的重叠。不同吸烟者状态的数据点以不同的颜色表示,例如,非吸烟者用一种颜色表示,吸烟者用另一种颜色表示。这样,我们可以直观地看到每天总账单金额的分布情况,并观察到吸烟者和非吸烟者之间的差异。