小提琴图(Violin Plot)是一种数据可视化图表,通常用于显示数据分布和概率密度。它结合了箱线图(Box Plot)和核密度估计图(Kernel Density Plot)的特点,提供了更丰富的信息。
小提琴图(Violin Plot)由几个主要组成部分构成,主要包括以下元素:
- 小提琴体(Violin Body): 小提琴体是图表的主体部分,通常呈现为两个镜像的核密度估计图,沿着数轴展开。这部分展示了数据的分布情况,宽度表示在该位置的数据点密度,即频率。较宽的部分表示数据点较密集,较窄的部分表示数据点较稀疏。
- 箱线图(Box Plot): 小提琴图的中间通常包含一个箱线图,用于显示数据的五个统计指标:最小值、第一四分位数(Q1)、中位数、第三四分位数(Q3)、和最大值。这有助于识别数据的离群值。
- 顶端和底端: 小提琴图的两端是小提琴体的边界线,标志着数据点的密度分布情况。这些边界线通过核密度估计图来形成,反映了数据在不同位置的密度。边界线的形状和宽度取决于数据的分布,而且不一定对应于数据的最大和最小值。
- 异常值标记(Outliers): 小提琴图中的箱线图可能包含异常值标记,表示数据中的离群值。
小提琴图的整体形状提供了一种对数据分布的直观感受,结合了箱线图和核密度估计图的特点,使得它在展示数据集中趋势和分布形状时非常有用。
示例1:用numpy生成随机数据绘制单个小提琴图。代码如下:
#导入相关的模块
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# 创建一个示例DataFrame
data1=pd.DataFrame()
#生成一些随机数据
data1['A']=[np.random.rand(1,20)]
# 绘制小提琴图
fig,ax=plt.subplots()
ax.violinplot(data1['A'],
vert=True, #垂直分布
showmedians=True) #标记中位数
ax.set_xlabel('A',fontsize=12)<