MATLAB Answers

change color of outlier limit in box plots

89 views (last 30 days)
yp78
yp78 on 3 Jan 2020
Commented: yp78 on 6 Jan 2020
For some applications, I'd like to hide the display of outliers in a boxplot.
I managed to hide the outliers using the following options, but still struggling not to display the dashed lines.
Here is a brief discription of how I do it and the outputs so far. Any help would be highly appreciated!
figure
for i=1:6
subplot(3,2,i)
boxplot(data(i),xVariables,'DataLim', [lowerLim, upperLim],'ExtremeMode','clip','Whisker',1.5, 'symbol','')
end
currentoutput.png

  0 Comments

Sign in to comment.

Accepted Answer

Akira Agata
Akira Agata on 4 Jan 2020
How about the following solution?
% Sample data
x = randn(1000,4);
% Create boxplot without outlier markers
figure
boxplot(x,'Symbol','')
% Find the target lines and set their 'LineStyle' to 'none'
h = findobj('-regexp','Tag','(Lower|Upper) (Whisker|Adjacent Value)');
set(h,'LineStyle','none')
boxplot.png

  3 Comments

yp78
yp78 on 4 Jan 2020
Thank you Akira. I have to apologise for my initial question, as I realised it was not clear enough. What I want to hide are not the wisker and adjacent values. It is the display for the upper and lower limits.
In your answer above, if I add the lower/upper limits as follows, how can I find the objects for h?
% Sample data
x = randn(1000,4);
% Create boxplot with upper/lower limits without outlier markers
figure
boxplot(x,'DataLim', [-3, 3],'Symbol','')
Akira Agata
Akira Agata on 6 Jan 2020
OK. Then, the YData of the upper- and lower-limit line objects should be [3 3] and [-3 -3], respectively, you can find these line objects by:
h = findobj('YData',[-3 -3],'-or','YData',[3 3]);
Then, you can delete these lines by
delete(h);
Or, you can set 'Visible' = 'off' for these lines by
set(h,'Visible','off');
Or, alternatively, you can set line color to 'none'
set(h,'Color','none');
yp78
yp78 on 6 Jan 2020
It worked perfectly! I appreciate your help :)

Sign in to comment.

More Answers (0)

Sign in to answer this question.


Translated by