《matlab科研绘图系列》之小提琴图绘制

2021-08-26 10:50:00 浏览数 (2)

相信大家对小提琴图并不陌生,它是比箱形图更易于视觉直观解读的图形绘制方法。它使用数据的核密度估计值代替了箱形图,并可选择叠加数据点本身。小提琴图是箱形图的升级加强版,对数据分布有更丰富的理解,同时不必占用更多空间。在小提琴图中,可以轻松发现过于稀疏的数据或多模式分布,而这些在箱形图中可能不会被注意到。本文推荐一款由Bastian Bechtold开发的小提琴图绘制工具箱 —— Violinplots

Violinplot工具共包含三个文件,定义小提琴图类的Violin.m类文件,调用小提琴类的构造函数violinplot.m,以及一个示例文件testviolinplot.m。为了方便展示,小编已经对示例文件做了一定程度上的修改,详见下方示例代码Violinplot可作为boxplot工具箱的直接替代品,当然不包括命名参数。附加的构造函数参数包括小提琴图的宽度、核密度估计的带宽和在X轴分布位置。

示例代码

代码语言:javascript复制
clear;clc;close all;

load carbig MPG Origin
Origin      = cellstr(Origin);
loc         = find(ismember(Origin,'England'));
Origin(loc) = [];
MPG(loc)    = [];

grouporder={'Sweden','USA','Japan','Italy','Germany','France'};  
fig = figure('Position',[495 186 894  700],...
             'Name','matlab科研绘图之小提琴图',...
             'NumberTitle','off',...
             'Color','w',...
             'Menubar','none');
         
vs2 = violinplot(MPG,Origin,'GroupOrder',grouporder,'Width',0.3);
xlim([0.5, 6.5]);
box on;
set(gca,'LineWidth',1.5,...
    'FontName','Times New Roman',...
    'FontWeight','bold',...
    'FontSize',18);

效果图见文首!

关于小提琴图的更多信息,请阅读J.L.Hintze和R.D.Nelson在The American Statistician, vol.52, no.2, pp.181-184, 1998发表的文章 "Violin plots: a box plot-density trace synergism" (DOI: 10.2307/2685478)。

如有需要Violinplot工具箱的关注者,请在matlab爱好者公众号中回复“QQ”加群,在群资料中下载,或点击阅读原文直接下载。

参考资料:github.com/bastibe/Violinplot-Matlab

0 人点赞