【问题标题】:Legend does not match plot lines on MATLAB plot图例与 MATLAB 绘图上的绘图线不匹配
【发布时间】:2013-08-27 19:35:37
【问题描述】:

我目前正在尝试在 MATLAB 中绘制一个函数及其泰勒多项式,但我遇到了一些问题。当我尝试运行以下脚本时,第一个图及其图例匹配,但由于某种原因,第二个图及其图例与线条不匹配。我是 MATLAB 新手,正在使用 MATLAB 2012b。

这是脚本:

% First Graph: This graph is correct
x = 0:.01:3;
f = sqrt(x);
P1 = 1 + 0.5*(x - 1);
P4 = 1 + (1/2)*(x - 1) - (1/4)*(1/2)*(x - 1).^2 ... 
     + (3/8)*(1/6)*(x - 1).^3  - (15/16)*(1/24)*(x - 1).^4;
plot(x, f, '-k', x, P1, ':r', x, P4, '--b');
xlabel('x');
ylabel('y');
legend('y = sqrt(x)', 'y = P_1(x)', 'y = P_4(x)', 'Location', 'NorthWest');


% Second Graph: This graph is NOT correct
y = -4:.01:4;
g = exp(cos(y));
P1 = exp(1);
P3 = exp(1) - (exp(1)/2)*y.^2;
figure(2);
plot(y, g, '-k', y, P1, ':r', y, P3, '--b');
xlabel('x');
ylabel('y');
legend('y = exp[cos(x)]', 'y = P_1(x)', 'y = P_3(x)', 'Location', 'South');

【问题讨论】:

    标签: matlab plot legend


    【解决方案1】:

    红线显示为实线很奇怪。在任何情况下,它都与您针对标量绘制向量有关。

    这将绘制等长向量并生成您期望的行为:

    plot(y, g, '-k', y, P1*ones(1,length(y)), ':r', y, P3, '--b');
    

    【讨论】:

    • 感谢您的回答。这似乎“解决”了这个问题。
    • @rafster 如果答案有效,请点击左侧的复选标记,谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    相关资源
    最近更新 更多