MATLAB Answers

Plot lines with different colors each iteration

21 views (last 30 days)
Geriffa
Geriffa on 12 May 2018
Edited: Image Analyst on 12 May 2018
Hi,
The following code plots 5 lines, all in black. I want them different in colors for each iteration. This section is within a large loop.
Q = volymflode*3600;
H = DeltaPF_TOT/(((rho_varm+rho_kall)/2)*g);
vektor_Q(1,j)=Q;
vektor_H(1,j)=H;
figure(1);
title('Systemkurva');
plot(vektor_Q,vektor_H,'k-','LineWidth',1);
ylabel('Uppfodringshöjd [m]');
xlabel('Volymflöde [M^3/h]');
plot(Qpump1,Hpump1,'b-')
j=j+1;
hold on
How do i make this happen?

  0 Comments

Sign in to comment.

Answers (2)

Mohammad Alhashash
Mohammad Alhashash on 12 May 2018
I've I assumed the loop index to be ii, then you can modify the plot portion of your code to be:
colorInd='ckyrb';
plot(vektor_Q,vektor_H,['-' colorInd(ii)],'LineWidth',1);
In this case, the color will be in the following order: 1.cyan 2.black 3.yallow 4.red 5.blue You can use whatever color you want by typing different symbols in colorInd variable.This may help also : https://www.mathworks.com/help/matlab/ref/linespec.html

  1 Comment

Geriffa
Geriffa on 12 May 2018
Should've mentioned it's within a while loop so no direct loop index exists, so I don't think this will work in my case. Got any another ideas more easily implemented in a while loop?
Edit: The while loop uses a counter and the loop stops when the counter reaches 50.

Sign in to comment.


Image Analyst
Image Analyst on 12 May 2018
Edited: Image Analyst on 12 May 2018
Simply get rid of the k
plot(vektor_Q, vektor_H, '-', 'LineWidth', 1);
ylabel('Uppfodringshöjd [m]');
xlabel('Volymflöde [M^3/h]');
hold on;
plot(Qpump1, Hpump1, 'b-', 'LineWidth', 2)
That will use the defined color order for plots, one of which is probably blue, so that's why I set the linewidth of your blue plot to 2 so you can tell the difference. If you want to specify the colororder, see attached demos.

  0 Comments

Sign in to comment.

Sign in to answer this question.