我正在尝试将一系列的累积总和与无限和绘制,并且不能使图例中的颜色与图表上的颜色相匹配。不确定我在这里做错了什么。我的代码如下:
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');
答案 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');
这是我在上面修改过的代码所得到的: