MATLAB Answers

0

Hello , I have an issue with getting everything to show on my figure correctly. I made four subplots but for some reason my 4th subplot is not showing and also the legend, text and title is not showing correctly either

Mohamed AL Sager さんによって質問されました 2019 年 11 月 12 日 13:41
最新アクティビティ dpb
さんによって 編集されました 2019 年 11 月 12 日 17:47
Hello ,
I have an issue with getting everything to show on my figure correctly. I made four subplots but for some reason my 4th subplot is not showing and also the legend, text and title is not showing correctly either
please help
Here's my code
%% Plot
figure;
plot(t,x11,'-*'),hold on;
plot(t,x(:,1),'-')
title('x1 vs Non-linear')
legend({'x1','Non-linear'},'Location','northeast')
txt = {'eq point [0.5,0.5]','initial point[0.51,0.51]'};
text(.4,10,txt)
subplot(2,2,1)
plot(t,x12,'-*'),hold on;
plot(t,x(:,2),'-')
title('x2 vs Non-linear')
legend({'x2','Non-linear'},'Location','northeast')
txt = {'eq point [0.5,0.5]','initial point[0.51,0.51]'};
text(.4,10,txt)
subplot(2,2,2)
plot(t,x13,'-*'),hold on;
plot(t,x1(:,1),'-')
title('x1 vs Non-linear')
legend({'x1','Non-linear'},'Location','northeast')
txt = {'eq point [0.5,0.5]','initial point[1,1]'};
text(.4,10,txt)
subplot(2,2,3)
plot(t,x14,'-*'),hold on;
plot(t,x1(:,2),'-');
title('x2 vs Non-linear')
legend({'x2','Non-linear'},'Location','northeast')
txt = {'eq point [0.5,0.5]','initial point[1,1]'};
text(.4,10,txt)
subplot(2,2,4)

  0 件のコメント

サインイン to comment.

タグ

1 件の回答

Answer by dpb
on 12 Nov 2019 at 13:48
Edited by dpb
on 12 Nov 2019 at 14:22

You plot() BEFORE you create the subplot; so the first plot is killed/destroyed after it is made when the subplot(2,2,1) call is made--then what is intended to be the second plot is plotted into that subplot axes. Same thing for the subsequent -- each is plotted into the subplot axes creathed ahead of it. There's no plot() command after the last suplot() axes is created; hence it's empty.
MORAL: Create the subplot() axis FIRST, then plot into it.
figure;
subplot(2,2,1)
plot(t,x11,'-*'),hold on;
plot(t,x(:,1),'-')
title('x1 vs Non-linear')
legend({'x1','Non-linear'},'Location','northeast')
txt = {'eq point [0.5,0.5]','initial point[0.51,0.51]'};
text(.4,10,txt)
subplot(2,2,2)
plot(t,x12,'-*'),hold on;
plot(t,x(:,2),'-')
...

  2 件のコメント

That helped, however the text is not showing in some of the graphs still
%% Plot
figure;
subplot(2,2,1)
plot(t,x11,'-*'),hold on;
plot(t,x(:,1),'-')
title('x1 vs Non-linear')
legend({'x1','Non-linear'},'Location','northeast')
txt = {'eq point [0.5,0.5]','initial point[0.51,0.51]'};
text(.4,10,txt)
subplot(2,2,2)
plot(t,x12,'-*'),hold on;
plot(t,x(:,2),'-')
title('x2 vs Non-linear')
legend({'x2','Non-linear'},'Location','northeast')
txt = {'eq point [0.5,0.5]','initial point[0.51,0.51]'};
text(.4,10,txt)
subplot(2,2,3)
plot(t,x13,'-*'),hold on;
plot(t,x1(:,1),'-')
title('x1 vs Non-linear')
legend({'x1','Non-linear'},'Location','northeast')
txt = {'eq point [0.5,0.5]','initial point[1,1]'};
text(.4,10,txt)
subplot(2,2,4)
plot(t,x14,'-*'),hold on;
plot(t,x1(:,2),'-');
title('x2 vs Non-linear')
legend({'x2','Non-linear'},'Location','northeast')
txt = {'eq point [0.5,0.5]','initial point[1,1]'};
text(.4,10,txt)
Capture.PNG
Use the CODE button to format the code to be legible.
The cut 'n paste ended up with the first subplot() call in front of the figure command -- reordered above.
Just go through logically and in sequence and get what you want on each plot in the sequence after beginning each supbplot().
It's wise to save the axes handles created so you can refer to the desired axis later on if want to add or modify something on one.

サインイン to comment.



Translated by