Adding error bars to a grouped bar plot

조회 수: 604 (최근 30일)
Shanaja
Shanaja 2019년 1월 6일
답변: Star Strider 2023년 6월 20일
Hi! I’m trying to plot a grouped bar graph with standard errors, and have managed this so far, which almost works but the SE are for some reasons plotted next to the bars rather than on them (see attached)? Any idea how to fix it? Thanks!
err = [3, 3; 1, 3];
 
y=[69,123; 74, 62];
figure
bar(y)
set(gca, 'XTickLabel', {'Cats' 'Dogs'});
hold on
errorbar(y, err, '.')
ylabel('Mean Error');
ylim([20 140]);
legend('response to novel cats', 'response to novel dogs');
saveas(gcf,['bar_2', '.jpg'])

채택된 답변

Vishal Chaudhary
Vishal Chaudhary 2019년 1월 9일
The ability to specify that the "errorbar" function display the error bars inside the individual bars is not available in MATLAB. It displays errorbar at the center of each group.
To work around this issue, find the center of each bar and pass this data into "errorbar" with the respective error values.
ngroups = size(y, 1);
nbars = size(y, 2);
% Calculating the width for each bar group
groupwidth = min(0.8, nbars/(nbars + 1.5));
for i = 1:nbars
x = (1:ngroups) - groupwidth/2 + (2*i-1) * groupwidth / (2*nbars);
errorbar(x, y(:,i), err(:,i), '.');
end
hold off
  댓글 수: 4
David L
David L 2019년 10월 29일
This was super helpful. Thank you!!
CR
CR 2020년 6월 18일
This is great! Would it be possible to decrease the spacing between the grouped bars? Thanks again!

댓글을 달려면 로그인하십시오.

추가 답변 (2개)

Steve Schaefer
Steve Schaefer 2020년 3월 11일
  댓글 수: 2
Jonathan Cottet
Jonathan Cottet 2021년 4월 19일
The code for the graph is not really displayed in the link you posted (categorical graph in your picture). Could you please post it here ?
Thanks in advance !
z8080
z8080 2023년 6월 20일
@Steve Schaefer, I would second @Jonathan Cottet's request to please post that code, as it is in fact not to be found under the given link. Thanks!

댓글을 달려면 로그인하십시오.


Star Strider
Star Strider 2023년 6월 20일
An example using properties available in prior and recent MATLAB releases is provided in Putting error bars on bar plot?
One of these approaches should work for all releases (at least after R2014b when ‘Handle Graphics 2’ appeared, and perhaps for earlier releases as well). The same general approach will also work for putting numbers or other text objects above or within the bars.

카테고리

Help CenterFile Exchange에서 Data Distribution Plots에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by