Hello,
I have 8 plots and would like for them to show up like this in my figure:
here is my MWE with just 4 plots:
% Frequency vector
x = 10:1000;
% Phase noise vector
y = 10:1000;
% Graph settings
subplot(2, 2, 1);
semilogx(x,y); grid on;
title('Pass1 Response');
xlabel('Frequency (Hz)'); ylabel('Amplitude');
subplot(2, 2, 2);
semilogx(x,y); grid on;
title('Data after Pass1');
xlabel('Frequency (Hz)'); ylabel('Amplitude');
subplot(2, 2, 3);
semilogx(x,y); grid on;
title('Pass 2 Response');
xlabel('Frequency (Hz)'); ylabel('Amplitude');
subplot(2,2,4);
semilogx(x,y); grid on;
title('Data after Pass 2');
xlabel('Offset Frequency (Hz)'); ylabel('Amplitude');
Any help will be greatly appreciated.
Thanks.

 채택된 답변

Jon
Jon 2015년 9월 16일
편집: Jon 2015년 9월 16일

1 개 추천

You need to divide the plotting space into 5 rows with 2 columns, so your first plot, for example, would read
subplot(5,2,[1 2])
your third would be
subplot(5,2,3)
and your last would be
subplot(5,2,[9 10])
Is that what you were asking?

댓글 수: 3

I tried following your procedure:
subplot(5,2,1)
subplot(5,2,[2 3])
subplot(5,2,[4 5])
subplot(5,2,[6 7])
subplot(5,2,8)
but only ended up with 1 plot. Can you tell me what I am doing wrong?
To be clear, using the code you originally posted, you would write
% Plot original data
subplot(5,2,[1 2])
semilogx(x,y); grid on;
title('Original Data');
xlabel('Frequency (Hz)'); ylabel('Amplitude');
% Plot Data After Pass 1
subplot(5,2,4)
semilogx(x,y); grid on;
title('Data after Pass1');
xlabel('Frequency (Hz)'); ylabel('Amplitude');
And so on. After each call to subplot, you need to actually plot something before calling a different subplot.
monkey_matlab
monkey_matlab 2015년 9월 17일
THANK YOU!

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

추가 답변 (1개)

카테고리

제품

태그

질문:

2015년 9월 16일

답변:

2021년 9월 22일

Community Treasure Hunt

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

Start Hunting!

Translated by