The following is a part of my matlab code. As it's shown, I would like to plot 8 curves in one plot. But I want to make each curve with one unique color. I also want to change the legend so that it changes for each i.
For instance, for i=1 the legend will be gho-1, for i=2 gho-2 and so on. I want it to be automatic because I will change the i sometimes from ex:(i=1:20).
for i=1:8
.
.
.
plot(b,r,'b');
legend(['qho-',num2str(i)]);
hold on
end
How can I do this?
Hi again,
I have other question: if I have the following
for i=1:8
.
b1=(1:3,:)
b2=(3:6,:)
figure(1);plot(b1,r,'*');
figure(2);plot(b2,r,'*');
Leg{i} = ['qho-',num2str(i)];
end
legend(Leg)
I got only color legend for the last figure only. not for both.. how can I solve that ?!
Thanks again
Just use hold all instead of hold on and put the legend labels in a cell array
hold all
for i=1:8
.
.
.
plot(b,r);
Leg{i} = ['qho-',num2str(i)];
end
legend(Leg)
See this question for example: Sparse matrix plot matlab
NOTE:
From Matlab R2014b onward, hold on has been modified to act like hold all, i.e. change the colours of the plots each time one is plotted. The docs state that the hold all syntax will be removed in future releases.
How about something like:
figure, hold on
N = 8;
h = zeros(N,1); %# store handle to line graphic objects
clr = lines(N); %# some colormap
for i=1:N
%# plot random data
y = cumsum(randn(100,1));
h(i) = plot(y, 'Color',clr(i,:));
end
hold off
legend(h, num2str((1:N)','gho-%d')) %# display legend

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With