index of box plot outliers
18 views (last 30 days)
Show older comments
ahmed shaaban
on 16 Sep 2014
Commented: Robert White
on 9 Sep 2021
I am trying to label the outliers of the box plot with year number. in the following code, pre_1 is years 1950-2010 for only january, pre_2 is the same but for Feb, and so on to Dec. I am wondering how can i get the index of each outliers, the ydata gives me the outliers value, but I still cannot find the index.
pre12345101112=[pre_1 pre_2 pre_3 pre_4 pre_5 pre_6 pre_7 pre_8 pre_9 pre_10 pre_11 pre_12];
figure;boxplot(pre12345101112)
h = findobj(gcf,'tag','Outliers');
xdata = get(h,'XData')
ydata = get(h,'YData')
thanks in advance
0 Comments
Accepted Answer
per isakson
on 17 Sep 2014
Edited: per isakson
on 17 Sep 2014
Try this
m = randn(48,12);
e = eps(max(m(:)));
boxplot( m )
h = flipud(findobj(gcf,'tag','Outliers')); % flip order of handles
for jj = 1 : length( h )
x = get( h(jj), 'XData' );
y = get( h(jj), 'YData' );
for ii = 1 : length( x )
if not( isnan( x(ii) ) )
ix = find( abs( m(:,jj)-y(ii) ) < e );
text( x(ii), y(ii), sprintf( '\\leftarrowY%02d', ix ) )
end
end
end
it labels the outliers
3 Comments
More Answers (0)
See Also
Categories
Find more on Line Plots in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!