violinplot()和boxplot()有什么不同?
在数据可视化中,箱形图和小提琴图都是常见的解释性统计图表。它们能够快速展示数据的分布和中心趋势,但是它们具有明显的视觉差异。在这篇文章中,我们将研究它们之间的差异,以及在什么情况下选择使用它们。
箱形图(boxplot)
箱形图最早由约翰·图基开发的,是常用于探索性数据分析的一种图表。它们只需要数据的最大值、最小值、中位数和上下四分位数(Q1和Q3),就可以构建出一个清晰的图形展示数据的分布以及离群点。
箱形图通常由一个长的矩形和至少两条垂直线段组成,并隐藏在矩形内部的中位数标识。箱形图还可以表示数据集的范围,我们可以用一些更短的短线段将最大值和最小值绘制出来,而箱子的两条侧面表示数据的上下四分位数(Q3和Q1)。如果一组数据中存在离群点,我们可以用大的圆圈将其标示出来。
使用Python语言示例生成一个箱形图, 代码如下:
import seaborn as sns
import matplotlib.pyplot as plt
# 加载数据集
tips = sns.load_dataset("tips")
# 绘制箱形图
sns.boxplot(x=tips["total_bill"])
# 显示图形
plt.show()
在上图中,中位数被标记为横向的绿线,在第一四分位数(Q1)下方的线段被标记为箱型的底部,而在第三四分位数(Q3)上方的线段被标记为箱型的顶部。
小提琴图(violinplot)
比箱形图更新的一个数据可视化方法是小提琴图。小提琴图更详细地显示了分布形状,尤其是对于小数据集非常有用。小提琴图中的每个数据点都有一个对应的小提琴型状,它在横坐标轴上对应着数据点的位置,并且使用核密度估算器绘制出密度形状。小提琴图内部的白点代表中位数,可以使用不同的颜色标记不同类别。
使用Python编程语言,我们可以使用seaborn库的violinplot()
函数来绘制小提琴图,代码如下所示:
# 加载数据集
tips = sns.load_dataset("tips")
# 绘制小提琴图
sns.violinplot(x=tips["total_bill"])
# 显示图形
plt.show()
小提琴图中的白点代表中位数。破折号显示小提琴中40%的数据,黑圆圈表示它们的中位数。两个图之间的色带表示小提琴内部的密度。
可以看到,与箱型图相比,小提琴图提供了分布的更多信息。首先,它可以通过较长的宽度显示密度较大的区域;其次,它可以直接在图形内部可视化中位数,数据的范围,以及计算出的内部点数分布。
箱形图和小提琴图的比较
箱形图和小提琴图都可以用于快速展示数据的分布和中心趋势,但是它们在视觉效果、显示细节以及展现数据特征方面有所不同,因此在使用它们时需要根据数据和可视化需求的具体情况来选择。
这里列举一些箱形图和小提琴图的比较:
- 箱型图更适合于展示大型数据集,它们可以准确地反映整体分布,并且可视化简洁明了。
- 小提琴图更适合于展示比较小的数据集,它们提供了更多的信息来帮助理解和解释数据分布。
- 箱型图能够更容易地显示离群点,而小提琴图的形状可以显示更多的密度信息。
- 箱型图可以表达单峰和非单峰峰态分布,但小提琴图可以在形状上展示更复杂的分布模式。
- 箱型图不容易受到数据量较少、偏向或数据离散度太大等影响,小提琴图对数据偏向比箱型图更加敏感。
综上所述,箱形图和小提琴图都是好的可视化选择。在使用这些图表来解释数据的时候,要考虑数据集的大小、偏向性和分布特征,以确定使用哪种类型的图表。
结论
在探索性数据分析中,箱形图和小提琴图都是很好的可视化工具。箱形图将数据的分布和中心趋势简单明了地展示,小提琴图以其详细的密度信息形象地表现了分布的形态。在选择使用哪种图表时,应根据数据集的大小、特征和分布情况以及可视化需求来进行选择。