图例颜色不匹配

时间:2015-01-18 05:04:46

标签: matlab legend

我正在尝试将一系列的累积总和与无限和绘制,并且不能使图例中的颜色与图表上的颜色相匹配。不确定我在这里做错了什么。我的代码如下:

p = .99;
k = 0:1:1000;  

geomSeries = p.^k; 

G = sum(geomSeries);    

figure;
hold on;
plot(k,G,'r');  

h = cumsum(geomSeries);
plot(k,h,'b'); 

xlim([k(1) k(end)]);
ylim([0 G+10]);

xlabel('Values of k');
ylabel('Cumulative sum');

title('Infinite series of p^k');

legend('Infinite sum','Finite series'); 

1 个答案:

答案 0 :(得分:2)

通过legend来电,您需要确保在拨打legend之前,所有地块都在一个函数调用中。因此,在一次函数调用中将正常几何级数的图形与其累积和相结合,然后相应地调用legend。此外,k是向量,而G是单个数字。我的猜测是,您希望k的每个值映射到G的相同值,因此您必须确保G也是一个向量。

因此,做这样的事情:

p = .99;
k = 0:1:1000;  

geomSeries = p.^k; 

%// NEW - Compute all terms first
G = sum(geomSeries);    
h = cumsum(geomSeries);

%// NEW - Combine terms into one plot
%// Also make sure `G` has the same number of terms as k
figure;
hold on;
plot(k,G*ones(1,numel(k)),'r',k,h,'b'); 

xlim([k(1) k(end)]);
ylim([0 G+10]);

xlabel('Values of k');
ylabel('Cumulative sum');

title('Infinite series of p^k');
legend('Infinite sum','Finite series'); 

这是我在上面修改过的代码所得到的:

enter image description here