Commit Friday evening.
PDFA and EXFO Laser are now part of the family
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
function testviolinplot()
|
||||
figure();
|
||||
% One could use tiled layout for better plotting them but it would be
|
||||
% incompatible with older versions
|
||||
subplot(2,4,1);
|
||||
|
||||
% TEST CASE 1
|
||||
disp('Test 1: Violin plot default options');
|
||||
load carbig MPG Origin
|
||||
Origin = cellstr(Origin);
|
||||
vs = violinplot(MPG, Origin);
|
||||
plotdetails(1);
|
||||
|
||||
% TEST CASE 2
|
||||
disp('Test 2: Test the plot ordering option');
|
||||
grouporder={'USA','Sweden','Japan','Italy','Germany','France','England'};
|
||||
|
||||
subplot(2,4,2);
|
||||
vs2 = violinplot(MPG,Origin,'GroupOrder',grouporder);
|
||||
plotdetails(2);
|
||||
|
||||
% TEST CASE 3
|
||||
disp('Test 3: Test the numeric input construction mode');
|
||||
subplot(2,4,3);
|
||||
cats = categorical(Origin);
|
||||
catnames = (unique(cats)); % this ignores categories without any data
|
||||
catnames_labels = {};
|
||||
thisData = NaN(length(MPG),length(catnames));
|
||||
for n = 1:length(catnames)
|
||||
thisCat = catnames(n);
|
||||
catnames_labels{n} = char(thisCat);
|
||||
thisData(1:length(MPG(cats == thisCat)),n) = MPG(cats == thisCat);
|
||||
end
|
||||
vs3 = violinplot(thisData,catnames_labels);
|
||||
plotdetails(3);
|
||||
|
||||
% TEST CASE 4
|
||||
disp('Test 4: Test two sided violin plots. Japan is being compared.');
|
||||
subplot(2,4,4);
|
||||
C = colororder;
|
||||
vs4 = violinplot({thisData,repmat(thisData(:,5),1,7)},catnames_labels,'ViolinColor',{C,C(5,:)},'ViolinAlpha',{0.3 0.3}, 'ShowMean', true, 'MarkerSize',8);
|
||||
plotdetails(4);
|
||||
|
||||
% TEST CASE 5
|
||||
disp('Test 5: Test shadow for quartiles.');
|
||||
subplot(2,4,5);
|
||||
vs5 = violinplot(MPG, Origin, 'QuartileStyle','shadow');
|
||||
plotdetails(5);
|
||||
|
||||
% TEST CASE 6
|
||||
disp('Test 6: Test plotting only right side & histogram plot, with quartiles as boxplot.');
|
||||
subplot(2,4,6);
|
||||
vs5 = violinplot(MPG, Origin, 'QuartileStyle','boxplot', 'HalfViolin','right',...
|
||||
'DataStyle', 'histogram');
|
||||
plotdetails(6);
|
||||
|
||||
% TEST CASE 7
|
||||
disp('Test 7: Test plotting only left side & histogram plot, and quartiles as shadow.');
|
||||
subplot(2,4,7);
|
||||
vs5 = violinplot(MPG, Origin, 'QuartileStyle','shadow', 'HalfViolin','left',...
|
||||
'DataStyle', 'histogram', 'ShowMean', true);
|
||||
plotdetails(7);
|
||||
|
||||
|
||||
% TEST CASE 8
|
||||
disp('Test 8: Same as previous one, just removing the data of half of the violins afterwards.');
|
||||
subplot(2,4,8);
|
||||
vs5 = violinplot([MPG; 5;5;5;5;5], [Origin; 'test';'test';'test';'test';'test'], 'QuartileStyle','shadow', 'HalfViolin','full',...
|
||||
'DataStyle', 'scatter', 'ShowMean', false);
|
||||
plotdetails(8);
|
||||
for n= 1:round(length(vs5)/2)
|
||||
vs5(1,n).ShowData = 0;
|
||||
end
|
||||
xlim([0, 9]);
|
||||
%other test cases could be added here
|
||||
|
||||
end
|
||||
|
||||
function plotdetails(n)
|
||||
title(sprintf('Test %02.0f \n',n));
|
||||
ylabel('Fuel Economy in MPG ');
|
||||
xlim([0, 8]); grid minor;
|
||||
set(gca, 'color', 'none');
|
||||
xtickangle(-30);
|
||||
fprintf('Test %02.0f passed ok! \n ',n);
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user