Plot many curves in one plot using for loop

2 views (last 30 days)
Benjamin Cowen
Benjamin Cowen on 17 Jul 2017
Answered: Robert U on 18 Jul 2017
Is there a way to have the variables in the plot change?
I am trying to do this:
for i=1:1:8
plot(x(i),o_vac(i))
hold on
end
But I get a grey screen for my figure. I want to plot 8 graphs with x1, y1, then x2, y2. Is this possible?
  2 Comments
Stephen23
Stephen23 on 17 Jul 2017
Edited: Stephen23 on 17 Jul 2017
plot(x(i),o_vac(i))
does not make much sense: you are plotting single points in a loop. This is very inefficient: if that is what you want then just plot all points at once and select the linestyle to suit.
Why do you need to use a loop? Just put your data into a matrix (arranged by column) and one single plot call is all you need:
plot(X,Y)
Benjamin Cowen
Benjamin Cowen on 17 Jul 2017
They are not suppose to be single points. I read in the data as shown below. I just have many of these, and don't want to write it all out
data1 = xlsread('C:\Users\Ben\examples.xlsx','PKA1');
x1 = data1(:,1);
o_vac1 = data1(:,4);

Sign in to comment.

Answers (1)

Robert U
Robert U on 18 Jul 2017
Hi Benjamin,
the following code snippet works as you would expect it to do:
% create data
for ik = 1:4
x(:,ik) = (-2:0.01:2)*pi/4*ik;
A(:,ik) = sin(x(:,ik) + ik*pi/4);
end
% plot data
fh = figure;
ah = axes('Parent',fh);
hold on
for ik = 1:4
plot(ah,x(:,ik),A(:,ik))
end
My suggestion would be to check on data validity. Are all values numeric? Are there blank spaces (empty cells) or nan-values?
Kind regards,
Robert

Tags

Community Treasure Hunt

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

Start Hunting!