How to change the axis location for multiple subplots ?

조회 수: 10 (최근 30일)
omar khater
omar khater 2017년 12월 14일
답변: Yoseph 2022년 10월 6일
I try to change the axis location for 2 subplots
when I entered this code
n = [-5:5];
x = 2*impseq(-2,-5,5) - impseq(4,-5,5);
subplot(2,2,1);
stem(n,x);
ax=gca;
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
title('Sequence in Problem 2.1a');
xlabel('n'); ylabel('x(n)');
ax.Box = 'off';
ax.Layer = 'top';
n = [0:20];
x1 = n.*(stepseq(0,0,20)-stepseq(10,0,20));
x2 = 10*exp(-0.3*(n-10)).*(stepseq(10,0,20)-stepseq(20,0,20));
x = x1+x2;
subplot(2,2,3);
stem(n,x);
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
title('Sequence in Problem 2.1b');
xlabel('n'); ylabel('x(n)');
It changes it for the first subplot only ..why is this?

답변 (2개)

Jan
Jan 2017년 12월 14일
편집: Jan 2017년 12월 14일
Because your
ax.XAxisLocation = 'origin';
ax.YAxisLocation = 'origin';
concerns the same object "ax". Try this:
ax2 = subplot(2,2,3);
stem(n,x);
ax2.XAxisLocation = 'origin';
ax2.YAxisLocation = 'origin';
Note that
ax = subplot(2,2,1);
is safer than;
subplot(2,2,1);
stem(n,x);
ax=gca;
If the user clicks around in the GUI during stem works, the current axes replied by gca is changed. Better catch the handles directly from the function, which creates the objects instead of searching them afterwards by gca or gcf.
  댓글 수: 5
Jan
Jan 2017년 12월 17일
@omar khater: While "I want the subplot 2,3 to be as 1" is clear to you, the readers have to guess, what this means. Remember that I do not have the faintest idea about what you want.
As you see in the attached image, I want...
The image shows, what you get, but not what you want instead.
The posted code does exactly, what is expected. The locations of the axes are moved to the corresponding origins - this is on the left for the upper right axes, and on the left bottom corner for the lower axes. So please explain exactly what does not appear as you want.
omar khater
omar khater 2017년 12월 17일
I want the axis of plots 2,3 to be in the middle of the graph as in plot 1
The image shows that the axis in the plot 3 doesn't change as I expect

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


Yoseph
Yoseph 2022년 10월 6일
n = [-5:5];
x = 2*impseq(-2,-5,5)-impseq(4,-5,5);
stem(n,x); title('Sequence in Problem 2.1a')
xlabel('n'); ylabel('(n)');

카테고리

Help CenterFile Exchange에서 Subplots에 대해 자세히 알아보기

태그

Community Treasure Hunt

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

Start Hunting!

Translated by