多分类数据集的箱线图
246次浏览(过去30天)
显示旧的注释
接受的答案
克里斯·拉皮埃尔
2019年10月25日
编辑:克里斯·拉皮埃尔
2019年10月25日
你可以使用'
BoxStyle','filled'名称,值对
创建箱线图时。我不喜欢那样。我所能找到的最好的方法就是
这篇文章
.请注意,填充是放置在盒状图顶部的彩色对象。这意味着它会掩盖中间线,除非你调整它的透明度。
我已经移动了平均值的绘图,使其位于创建填充的新对象的顶部。我还将它添加到图例中,以便其他人知道这个非标准标记代表什么。
最后的答案是:
负载“plot.mat的数据”
nDataSets = 7;
nVars = 3;
nVals = 15;
创建列向量来指示数据集
dataSet = categorical([ones(nVars*nVals,1);...
(据nvar *造船,1)* 2;...
(据nvar *造船,1)* 3;...
(据nvar *造船,1)* 4;...
(据nvar *造船,1)* 5;...
(据nvar *造船,1)* 6;...
(据nvar *造船,1)* 7]);
创建列向量来表示变量
清晰的var
var(1:造船,1)=“Var1”;
var(+ 1:结束+造船,1)=“Var2”;
var(+ 1:结束+造船,1)=“Var3”;
Var =分类([Var; Var; Var; Var; Var]);
创建一个表
testData =表(数据,数据集,Var);
h = boxplot(testData.data,{testData.dataSet,testData.Var},...
“ColorGroup”, testData。Var,...
“标签”,{”,“Data1”,”,”,“Data2”,”,”,“Data3”,”,”,“Data4”,”,”,“Data5”,”,”,“Data6”,”,”,“Data7”,”});
% set(gca,'XTickLabel',{' '})
不显示异常值
Ol = findobj(h,“标签”,“离群值”);
集(ol,“可见”,“关闭”);
找到所有箱子
Box_vars = findall(h,“标签”,“盒子”);
填充盒百分比
为j = 1:长度(box_vars)
补丁(get (box_vars (j),“XData”),得到(box_vars (j),“YData”), box_vars (j)。的颜色,“FaceAlpha”、1。“EdgeColor”,“没有”);
结束
%添加图例
Lg = legend(box_vars(1:3), {G1的,“G2”,“G3”},“位置”,“northoutside”,“定位”,“水平”);
将Mean添加到箱线图中
summaryTbl = groupsummary(testData,{“数据集”,“Var”},“的意思是”)
持有在
情节(summaryTbl.mean_data' + k ')
持有从
Lg。{4} =字符串“的意思是”;
更多答案(3)
克里斯·拉皮埃尔
2019年10月24日
编辑:克里斯·拉皮埃尔
2019年10月24日
不知道你希望它最终是什么样子,但有一种方法。
负载features.mat
Data1 = features{1};
Data2 = features{2};
Data3 = features{3};
Data4 = features{4};
次要情节(1,4,1)
箱线图(data1)
标题(“数据1”)
次要情节(1,4,2)
箱线图(data2)
标题(《数据2》)
次要情节(1,4,3)
箱线图(data3)
标题(的数据3 ')
次要情节(1,4,4)
箱线图(data4)
标题('数据4 ')
1评论
克里斯·拉皮埃尔
2019年10月24日
编辑:克里斯·拉皮埃尔
2019年10月24日
创建所有数据的列向量
数据= [data1(:);data2 (:);data3 (:);data4 (:));
创建列向量来指示数据集
dataSet = categorical([ones(number (data1),1);...
(元素个数(data2), 1) * 2;...
(元素个数(data3), 1) * 3;...
(元素个数(data4), 1) * 4]);
创建列向量来表示变量
清晰的var
var(1:长度(data1), 1) =“Var1”;
var(端+ 1:端+长度(data1), 1) =“Var2”;
var(端+ 1:端+长度(data1), 1) =“Var3”;
Var =分类([Var; Var; Var]);
创建一个表
testData =表(数据,数据集,Var);
现在您可以使用一个boxplot命令来创建所描述的boxplot。您可以使用多个分组变量将数据组织到单独的箱线图中(用花括号将它们括起来)。在这里,我首先分组
数据集
,则由
Var
.
箱线图(testData.data {testData.dataSet, testData.Var})
两个x轴标签表示1)数据集和2)变量。
如果您想要逐个查看特定变量的所有箱线图,请将分组变量的顺序更改为第一组by
Var
,则由
数据集
.
箱线图(testData.data {testData.Var, testData.dataSet})
注意x轴标签仍然可以用来正确地识别每个箱线图。