multiple graphs in one script

I am runny a loop over set of function and in the end I want some graphs of different data. there are three variables let say a, b and c.I have generated a graph using:
plot(iteration,a,iteration,b,iteration,c)
plot(a,b)
bt it is giving the 2nd one only. I want another graph of A on x axis and C on y axis likewise C on x axis and b on y axis. I cant figure out how to get multiple plots because it is generating plot of last command only. I tried

 Respuesta aceptada

Walter Roberson
Walter Roberson el 28 de Jul. de 2018

5 votos

Do not use figure() as a variable name.
fig1 = figure(1);
ax1 = axes('Parent', fig1);
h = plot(ax1, Iteration, total_util*100, 'b', Iteration, DD, 'r', Iteration, PP, 'g');
legend(h, 'total_util','d_quantity','Price');
fig2 = figure(2);
ax2 = axes('Parent', fig2);
h = plot(ax2, total_util);
The simple version of that is
figure(1);
plot(Iteration, total_util*100, 'b', Iteration, DD, 'r', Iteration, PP, 'g');
legend('total_util','d_quantity','Price');
figure(2);
plot(total_util);
but I recommend using the longer version: with the shorter version, graphics can end up going places you do not want in some cases. See https://www.mathworks.com/matlabcentral/answers/?term=tag%3Aalways-parent

Más respuestas (1)

Ben Frankel
Ben Frankel el 28 de Jul. de 2018
Editada: Ben Frankel el 28 de Jul. de 2018

1 voto

You need to use hold on after the first plot and hold off after the last plot if you want multiple plots in the same figure. Use figure before all of the plots to put them in a new figure.

10 comentarios

summyia qamar
summyia qamar el 28 de Jul. de 2018
this is not working because both plots are showing on the same graph I want 2 different graph windows
Walter Roberson
Walter Roberson el 28 de Jul. de 2018
  • "hold on" if you want the graphs on the same axes
  • subplot() if you want the graphs on different axes in the same figure
  • figure() if you want to create different windows
summyia qamar
summyia qamar el 28 de Jul. de 2018
with figure(1) it is giving indexing error
If figure(1) is giving an indexing error, then you somehow have accidentally created an empty variable named figure
which figure
summyia qamar
summyia qamar el 28 de Jul. de 2018
I have written this after the loop end.. and no other FIGURE word used
figure(1)=plot(Iteration,total_util*100,'b',Iteration,DD,'r',Iteration,PP,'g');
legend('total_util','d_quantity','Price')
figure(2)=plot(total_util);
summyia qamar
summyia qamar el 28 de Jul. de 2018
Error
Unable to perform assignment
because the left and right sides
have a different number of
elements.
figure(1)=plot(Iteration,total_util*100,'b',Iteration,DD,'r',Iteration,PP,'g');
Do not use figure() as a variable name.
fig1 = figure(1);
ax1 = axes('Parent', fig1);
h = plot(ax1, Iteration, total_util*100, 'b', Iteration, DD, 'r', Iteration, PP, 'g');
legend(h, 'total_util','d_quantity','Price');
fig2 = figure(2);
ax2 = axes('Parent', fig2);
h = plot(ax2, total_util);
summyia qamar
summyia qamar el 28 de Jul. de 2018
yes it worked. thankyou
summyia qamar
summyia qamar el 28 de Jul. de 2018
isn't there any easy way? a one line function?
figure(1);
plot(Iteration, total_util*100, 'b', Iteration, DD, 'r', Iteration, PP, 'g');
legend('total_util','d_quantity','Price');
figure(2);
plot(total_util);

Iniciar sesión para comentar.

Categorías

Más información sobre Creating, Deleting, and Querying Graphics Objects en Centro de ayuda y File Exchange.

Productos

Versión

R2018a

Preguntada:

el 28 de Jul. de 2018

Comentada:

el 8 de Feb. de 2023

Community Treasure Hunt

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

Start Hunting!

Translated by