필터 지우기
필터 지우기

How to make a grouped boxplot of measurements data from five days?

조회 수: 1 (최근 30일)
Hi,
I have a 46x5 matrix with measurement data from 46 points taken on five days, called MyData.
The 46 measurement points belong to three groups. They are saved in a 46x1 vector called Site, with values 1, 2 or 3 representing the three groups.
I'm trying to create a grouped boxplot using:
MyData = rand(46,5);
Site = randi([1 3],46,1);
boxplot(MyData,Site);
but I'm getting an error:
Error using boxplot>straightenX (line 970)
G must be the same length as X or the same length as the number of columns in X.
Error in boxplot (line 274)
[xDat,gDat,origRow,xlen,gexplicit,origInd,origNumXCols] = straightenX(x,g);
G and X actually do have the same length (46), but I assume Matlab doesn't like the fact that the number of columns in X is larger than one.
Does any of you know how to solve it? My goal is to make a boxplot similar to this (just made in Powerpoint:)

채택된 답변

Corymbiamaculata
Corymbiamaculata 2019년 10월 30일
I found the answer myself; updating in case someone has a similar problem.
MyData = rand(46,5);
Site = randi([1 3],46,1);
MyDataNew = reshape(MyData,size(MyData,1)*size(MyData,2),1); % reshape into one column
MeasureDay = repelem(1:5,[size(MyData,1)],[1]); % new variable with values representing measurement days
MeasureDay = reshape(MeasureDay,size(MeasureDay,1)*size(MeasureDay,2),1); % reshape into one column
Site = repmat(Site,5,1); % reshape into one column
boxplot(MyDataNew,[Site,MeasureDay]); % two grouping variables used together

추가 답변 (0개)

제품


릴리스

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by