多个分类数据集的箱线图
261(30天)
显示旧的评论
接受的答案
克里斯·拉皮埃尔
2019年10月25日
编辑:克里斯·拉皮埃尔
2019年10月25日
您可以使用“
BoxStyle”、“满”名称值对
当创建箱线图。我不喜欢看起来如何。最好的我能找到我喜欢的方式是创建它
这篇文章
。注意,填充颜色的对象被放置在箱线图。这意味着它会掩盖中间线,除非你调整其透明度。
我把策划的意思是这样的新对象创建填充。我也添加到传奇,这样其他人知道标准的标记代表什么。
最终的答案是这样的:
负载“plot.mat数据”
nDataSets = 7;
据nvar = 3;
造船= 15;
%创建列向量来表示数据集
数据集=分类([的(据nvar *造船,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; Var; Var));
%创建一个表
testData =表(数据、数据集、Var);
h =箱线图(testData.data {testData.dataSet, testData.Var},…
“ColorGroup”testData.Var,…
“标签”,{”,“Data1”,”,”,“Data2”,”,”,“Data3”,”,”,“Data4”,”,”,“Data5”,”,”,“Data6”,”,”,“Data7”,”});
%设置(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 .Color (j),“FaceAlpha”、1。“EdgeColor”,“没有”);
结束
%添加传奇
Lg =传奇(box_vars (1:3) {G1的,“G2”,“G3”},“位置”,“northoutside”,“定位”,“水平”);
% %的意思是添加到箱线图
summaryTbl = groupsummary (testData, {“数据集”,“Var”},“的意思是”)
持有在
情节(summaryTbl.mean_data' + k ')
持有从
Lg。{4}=字符串“的意思是”;
5个评论
克里斯·拉皮埃尔
2023年4月7日
编辑:克里斯·拉皮埃尔
2023年4月7日
最好问自己的一个新问题,越来越多的人会看到它。
X标记标签名称直接来自分类信息用来对数据进行分组。你不需要使用分类分组,但它确实使它方便小组非数字数据。
在这里,我已经改名为分类展示。
%创建一个测试数据集
nDataSets = 7;
据nvar = 2;
造船= 15;
data =兰特(造船*据nvar * nDataSets, 1);
%创建列向量来表示数据集
数据集=分类([的(据nvar *造船,1);…
(据nvar *造船,1)* 2;…
(据nvar *造船,1)* 3;…
(据nvar *造船,1)* 4;…
(据nvar *造船,1)* 5;…
(据nvar *造船,1)* 6;…
(据nvar *造船,1)* 7]);
数据集= renamecats(数据集,{“红色”,“橙”,“黄色”,“绿色”,“紫色”,靛蓝色的,“紫色”});
%创建列向量来表示变量
清晰的var
var(1:造船,1)=“Var1”;
var(+ 1:结束+造船,1)=“Var2”;
Var =分类([Var; Var; Var; Var; Var; Var; Var));
%创建一个表
testData =表(数据、数据集、Var);
% # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
实际使用boxchart可视化代码%
boxchart (testData.dataSet testData.data,“GroupByColor”testData.Var)
% %的意思是添加到箱线图
summaryTbl = groupsummary (testData, {“数据集”,“Var”},“的意思是”);
持有在
情节((1:nDataSets *据nvar) / 2 + 0.25, summaryTbl.mean_data,' + k ')
持有从
传奇([“G1”,“两国集团”,“的意思是”),“位置”,“northoutside”,“定位”,“水平”)
更多的答案(3)
克里斯·拉皮埃尔
2019年10月24日
编辑:克里斯·拉皮埃尔
2019年10月24日
不知道你希望它是什么样子的,但这里有一个方法。
负载features.mat
data1 ={1}特性;
data2 ={2}特性;
data3 ={3}特性;
data4 ={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日
%创建所有数据的列向量
data = [data1 (:);data2 (:);data3 (:);data4 (:));
%创建列向量来表示数据集
数据集=分类([的(元素个数(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; Var]);
%创建一个表
testData =表(数据、数据集、Var);
现在,您可以使用一个单一的箱线图命令来创建你所描述的箱线图。您可以使用多个分组变量的数据组织成独立的箱线图(将它们包含在花括号)。在这里,我首先
数据集
,然后由
Var
。
箱线图(testData.data {testData.dataSet, testData.Var})
这两个轴标签显示数据集1)和2)变量。
如果你想看到所有的箱线图为一个特定的变量相邻,改变你的订单第一组的分组变量
Var
,然后由
数据集
。
箱线图(testData.data {testData.Var, testData.dataSet})
注意轴标签仍然可以用来正确地标识每个箱线图。