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