以下是我的matlab代码的一部分。如图所示,我想在一个图中绘制8条曲线。但我想用一种独特的颜色制作每条曲线。我还想更改图例,以便为每个i
更改图例。
例如,对于i = 1,图例将为gho-1,i = 2 gho-2,依此类推。我希望它是自动的,因为我有时会从ex :( i = 1:20)改变i
。
for i=1:8
.
.
.
plot(b,r,'b');
legend(['qho-',num2str(i)]);
hold on
end
我该怎么做?
你好,
我有其他问题: 如果我有以下
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)
我只获得了最后一个数字的颜色图例。不是两个.. 我怎么解决这个问题?!
再次感谢
答案 0 :(得分:8)
只需使用hold all
代替hold on
,并将图例标签放在单元格数组中
hold all
for i=1:8
.
.
.
plot(b,r);
Leg{i} = ['qho-',num2str(i)];
end
legend(Leg)
请参阅此问题,例如:Sparse matrix plot matlab
注意:强>
从 Matlab R2014b以后,hold on
已被修改为像hold all
一样,即每次绘制一个图时都会更改图的颜色。 The docs声明将来的版本中将删除hold all
语法。
答案 1 :(得分:7)
如下:
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