电子厂用易特AI助理做物料追溯,SMT防错快人一步
2026/9/27 10:00:26
在数据可视化中,小提琴图是一种非常有用的图表,可以直观地展示数据分布的形状、密度以及其在不同组之间的比较。今天,我将分享如何结合Matplotlib和高斯核密度估计(KDE)来绘制带箱型图的小提琴图。
为什么使用小提琴图?
代码解读
这段代码通过以下步骤实现了一个自定义的小提琴图:
scipy.stats.gaussian_kde来计算每组数据的核密度估计,从而获得数据的分布情况。fill_betweenx绘制半边小提琴图,控制其宽度,并添加箱型图以更全面地展示数据的分布和异常。运行效果
完整代码
importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.statsimportgaussian_kdeimportmatplotlib.tickerasticker# 设置字体为 Times New Romanplt.rcParams['font.family']='Times New Roman'# 设置数学公式字体为 Times New Romanplt.rcParams['mathtext.fontset']='custom'plt.rcParams['mathtext.rm']='Times New Roman'plt.rcParams['mathtext.it']='Times New Roman'plt.rcParams['mathtext.bf']='Times New Roman'# 设置字体大小plt.rcParams['font.size']=32# 数据准备np.random.seed(0)# 设置随机种子,确保可重复性mean=0.5# 高斯分布的均值 (μ)std_dev=0.1# 高斯分布的标准差 (σ)# 从正态分布中生成 10000 个样本data1=np.random.normal(mean,std_dev,10000)data2=np.random.normal(mean,std_dev,10000)data3=np.random.normal(mean,std_dev,10000)data4=np.random.normal(mean,std_dev,10000)data5=np.random.normal(mean,std_dev,10000)# 将数据集合在一起groups=[data1,data2,data3,data4,data5]# 设置标签labels=['label1','label2','label3','label4','label5']# 自定义颜色colors=['#1f77b4',# 深蓝色'#ff7f0e',# 橙色'#2ca02c',# 绿色'#9467bd',# 紫色'#e377c2',# 粉色'#d62728',# 红色]light_colors=['#aec7e8',# 浅蓝色'#ffbb78',# 浅橙色'#98df8a',# 浅绿色'#c5b0d5',# 浅紫色'#f7b6d2',# 浅粉色'#ff9896',# 浅红色]# 创建图形和坐标轴fig,ax=plt.subplots(figsize=(18,8))# 遍历每组数据fori,datainenumerate(groups)