数据可视化——Matlab平台matlab-barplot工具箱绘制小提琴图

数据可视化——Matlab平台matlab-barplot工具箱绘制小提琴图

概述:基于matlab平台的matlab-barplot工具箱绘制小提琴图

小提琴图(violin plot)可以理解为另一种形式的核密度图。小提琴图的一半轮廓表示该组数据分布的核密度曲线。有时,小提琴图也可以与箱线图叠加在一起显示。

使用工具箱:matlab-barplot工具箱结合matlab-auto-axis工具箱。matlab-barplot工具箱的下载地址https://github.com/djoshea/matlab-barplot;matlab-auto-axis工具箱的下载地址:https://github.com/djoshea/matlab-auto-axis/。matlab-barplot工具箱需要与matlab-auto-axis工具箱结合使用。matlab-barplot工具箱同时支持绘制条形图和小提琴图的绘制。更多应用例程可以参考matlab-barplot工具箱里的example及matlab-barplot工具箱的下载地址中提供的示例。下载好的工具箱需要添加至matlab工作路径,详细操作请参考之前的描述:数据可视化——Matlab平台gramm工具箱绘制散点相关图(https://blog.csdn.net/zhouhucheng00/article/details/85763269)。注意,matlab-barplot工具箱对matlab的版本有要求,以下代码在matlab R2016b中测试通过,但在matlab R2014a中出错,可能与matlab 的图形设置更新有关。

下面是我通过使用matlab-barplot工具箱绘制的小提琴图的示例,示例代码如下:

clc;clear;close all;

%绘制不同组别的数据为小提琴图

Y=rand(20,1); %随机产生20个数
Y_1=Y+10; %产生group1的数
Y_2=Y+12; %产生group2的数
Y_3=Y+11; %产生group3的数
Y_4=Y+14; %产生group4的数

max_Y=max([Y_1;Y_2;Y_3;Y_4]); %求各组值的中最大值,用于限定显示数据的范围
min_Y=min([Y_1;Y_2;Y_3;Y_4]); %求各组值的中最小值,用于限定显示数据的范围

h=figure;
set(h,'units','normalized','position',[0.1 0.1 0.4 0.7]);%设置绘图窗口的大小
set(h,'color','w');%设置绘图窗口的背景为白色
bp = BarPlot('ylabel', 'Value'); %创建BarPlot对象,并设置Y轴的标题
cma = [1.0000    0.3600    0.4100;0.0200    0.7100    0.2900]; %设置填充颜色
g = bp.addGroup(' '); %为要显示的数据添加组别对象

%其中 FaceColor 指定填充颜色,locationType 设为 median 表示中间的横线表示中值,
%style 设置为 ksdensity 表示依据核密度函数 ksdensity 绘制小提琴图的外形
%fontsize 设置显示组别的字体大小,FontWeight为bold表示组别的字体为粗体
b1 = g.addViolinBar('group1', Y_1, 'FaceColor',cma(1,:),'locationType', 'median', 'style', 'ksdensity' ,'fontsize',20,'FontWeight','bold');
b2 = g.addViolinBar('group2', Y_2, 'FaceColor',cma(2,:),'locationType', 'median', 'style', 'ksdensity' ,'fontsize',20,'FontWeight','bold');
b3 = g.addViolinBar('group3',Y_3, 'FaceColor',cma(1,:),'locationType', 'median', 'style', 'ksdensity','fontsize',20,'FontWeight','bold');
b4 = g.addViolinBar('group4',Y_4, 'FaceColor',cma(2,:),'locationType', 'median', 'style', 'ksdensity' ,'fontsize',20,'FontWeight','bold');

bp.render();hold on
alpha(0.3); %设置填充颜色的透明度
ylim([min_Y-2,max_Y+2]); %限定Y轴的显示范围
set(gca, 'fontsize',20,'fontweight','bold') %设置Y轴的标题字体大小和字体

示例结果如下:
数据可视化——Matlab平台matlab-barplot工具箱绘制小提琴图_第1张图片
其中,黑色横线表示各组数据对应的中值。小提琴图的使用目前还不是很多,但提供了另一种较为美观的数据呈现的方法。

你可能感兴趣的:(Matlab数据可视化)