MATLAB Answers

plotting confidence interval and creating second axis in one plot

조회 수: 2(최근 30일)
Nona
Nona 2021년 9월 1일
댓글: Bjorn Gustavsson 2021년 9월 2일
I would like to plot two means with their 95% confidence interval around each mean, plus the mean difference including confidence interval in the same plot but on a second axis on the right starting with 0 on the same level as the smaller mean value of the first two means. I came so far as to make the confidence intervals with the errorbar function but cannot figure out how to set a second axis and adjust it to start at the height of the one mean.
I attached a file with an example of how the plot should look like at the end. Thanks for any help!
plot([0 1 2 3],[0,mean_pre2,mean_post1,0],'bo')
hold on
plot([4 5],[mean_diff, 0],'ro')
U = [0,CIpre2_up,CIpost1_up,0,CIdiff_up,0];
L = [0,CIpre2_lo,CIpost1_lo,0,CIdiff_lo,0];
errorbar((0:5),[0,mean(maxAnklePower_pre2),mean(maxAnklePower_post1),0,mean(maxAnklePower_pre2-maxAnklePower_post1), 0],L,U,'o')
  댓글 수: 5
Bjorn Gustavsson
Bjorn Gustavsson 2021년 9월 2일
@Adam Danz - this is especially so for problems where one has a "kind of working solution" - then it is not as urgent to keep track of the newer better solutions...

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

채택된 답변

Adam Danz
Adam Danz 2021년 9월 1일
Here's a demo that should get you started.
The alignment of y=0 on the right axis with the first data point at "x" is done at the bottom half of the block below.
data = [3.2 5.2 5];
err = [1.5 .8 1.6];
yyaxis left
ax = gca();
errorbar(ax, data, err, 'ko','LineStyle','none', ...
'MarkerFaceColor','k')
set(ax,'xtick',1:3,...
'xticklabel',{'x','y','difference'},...
'xlim',[0.5, 3.5], 'ylim', [-1,8])
ax.XAxis.Color = 'k';
ax.YAxis(1).Color = 'k';
ax.YAxis(2).Color = 'k';
ylabel('Mean')
% Align 0 on right y-axis with the 'x'datapoint
% at the same scale as the left y-axis
yyaxis right
distanceToLeftAxLims = ax.YAxis(1).Limits - data(1);
ax.YAxis(2).Limits = distanceToLeftAxLims;
% Add horizontal reference line
yline(0, 'k--')
  댓글 수: 4
Adam Danz
Adam Danz 2021년 9월 2일
yyaxis left
That will put control back to the left axis.

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

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by