【问题标题】:Colors in legend not matching the plot图例中的颜色与情节不符
【发布时间】:2014-11-18 04:06:44
【问题描述】:

我必须绘制一些麦克劳林系列,但我对传说有疑问。

对于这两个方程-

x = (-1:.01:1);

% e^x
eqtn21 = 1; 
eqtn22 = 1 + x;
eqtn23 = 1 + x + x.^2/2;
eqtn24 = 1 + x + x.^2/2 + x.^3/6;
eqtn25 = exp(x);

% cos(x)
eqtn31 = 1;
eqtn32 = 1 - x.^2/2;
eqtn33 = 1 - x.^2/2 + x.^4/24;
eqtn34 = 1 - x.^2/2 + x.^4/24 - x.^6/720;
eqtn35 = cos(x);

subplot(2,2,1)
    plot(x,eqtn21,'r',x,eqtn22,'g',x,eqtn23,'b',x,eqtn24,'k',x,eqtn25,'c')
    legend('First Term','First Two Terms','First Three Terms','First Four Terms','Exact Function')

subplot(2,2,2)
    plot(x,eqtn31,'r',x,eqtn32,'g',x,eqtn33,'b',x,eqtn34,'k',x,eqtn35,'c')
    legend('First Term','First Two Terms','First Three Terms','First Four Terms','Exact Function')

当我绘制它们时,会显示图例,但显示 5 条红线,并且与绘图上的颜色不匹配。

【问题讨论】:

    标签: matlab plot legend


    【解决方案1】:

    问题在于eqtn21eqtn31。它们的大小为 1,而 x 是不同大小的向量。当您绘制时,如果您想要一条恒定线,则需要将它们的大小与 x 的大小相匹配(因此对于 x 的所有值,您将得到 1),或者 eqtn21 = [1 1 1 1 ... 1];

    一个简单的方法是写eqtn21 = 1+0*x;等。其他方法可以使用repmat或矩阵乘法等来优化eqtn21...

    eqtn21=repmat(1,[1 numel(x)])
    

    eqtn21=1*ones(1,numel(x))
    

    等等……

    【讨论】:

      猜你喜欢
      • 2015-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-13
      • 1970-01-01
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      相关资源
      最近更新 更多