Legend does not match plot
이전 댓글 표시
I used the following code to generate my plot (and I want it later to include in my LateX document):
clear all; close all; clc;
a1 = 1; a2 = 1; c1 = 2.0; c2 = 1.8; time = 0:0.1:300;
wave1 = a1 * sin(c1*time);
wave2 = a2 * sin(c2*time);
wave3 = wave1 + wave2;
y = hilbert(wave3);
env = abs(y);
bound = 0.1*cos(0.2*time-pi);
plot(time,wave3,'k',time,[-1;1]*env,'--k',time,bound,'-.r', 'Linewidth',1.2);
ylabel(' $\eta$ (m)');
xlabel(' Time (s)');
legend = legend({'Short waves','Wave group envelope','Bound long wave'});
set(legend, 'FontSize',20);
axis([15.7 110 -2.5 2.5]);
set(groot, 'defaultAxesTickLabelInterpreter','latex'); set(groot, 'defaultLegendInterpreter','latex');
The graph looks like:

Clearly, the 'bound long wave' legend does not match the color and line specification in the graph. As far as I know, it has something to do with scalar/vector but I cannot figure out where the error is.
How to proceed further?
채택된 답변
추가 답변 (1개)
Muhammad Usman Saleem
2016년 6월 22일
let's fix this bug in your code, replace with this
legend = legend('Short waves','Wave group envelope','Bound long wave');
댓글 수: 3
André
2016년 6월 22일
Guillaume
2016년 6월 22일
Indeed, there is absolutely no difference in passing the legend strings as a comma-separated list or as a cell array (or a char array)
Walter Roberson
2016년 6월 22일
Passing as a cell array can be used to pass in some legend strings that would otherwise be interpreted as options.
카테고리
도움말 센터 및 File Exchange에서 Legend에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!