MATLAB Answers

why can I not create 3 subplots?

조회 수: 1(최근 30일)
Matthias Pospiech
Matthias Pospiech 2012년 2월 21일
This code deletes the second subplot when the third is created:
clc
figure(1); clf;
sp(1) = subplot(1,3,1, 'Parent', hfig);
set(sp(1),'Position',[0.02 0.05 0.30 0.80]);
sp(2) = subplot(1,3,2, 'Parent', hfig);
set(sp(2),'Position',[0.32 0.15 0.60 0.80]);
sp(3) = subplot(1,3,3, 'Parent', hfig);
set(sp(3),'Position',[0.22 0.25 0.50 0.80]);
But why???

채택된 답변

Matt Tearle
Matt Tearle 2012년 2월 21일
subplot deletes any axes that are already where you're trying to put the new one. If you're going to set the position property of the axes manually anyway, why bother with subplot at all? Just use axes:
clc, figure(1); clf;
sp(1) = axes('Parent', hfig);
set(sp(1),'Position',[0.02 0.05 0.30 0.80]);
sp(2) = axes('Parent', hfig);
set(sp(2),'Position',[0.32 0.15 0.60 0.80]);
sp(3) = axes('Parent', hfig);
set(sp(3),'Position',[0.22 0.25 0.50 0.80]);
  댓글 수: 4
jiro
jiro 2012년 2월 21일
Oh I see. The actual axes bounds go beyond the position (since there needs to be space for the axes tick labels), so that's why "subplot" thinks they are overlapping even if you place them side by side.
So you're better off just using the axes function. If you think about it, the first 3 arguments of subplots are meant for axes placement. If you're going to change the placement position, then subplot probably isn't the right choice.

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

추가 답변(0개)

태그

Community Treasure Hunt

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

Start Hunting!

Translated by