Как сделать так, чтобы легенды Matlab соответствовали цвету графиков? - PullRequest
1 голос
/ 10 мая 2010

Вот код, который я использовал:

x = linspace(0,2);
e = exp(1);
lin = e;
quad = e-e.*x.*x/2;
cub  = e-e.*x.*x/2;
quart = e-e.*x.*x/2+e.*x.*x.*x.*x/24;
act = e.^cos(x);
mplot = plot(x,act,x,lin,x,quad,x,cub,x,quart);
legend('actual','linear','quadratic','cubic','quartic')

Это создает легенду, сопоставляющую правильные цвета с фактической и линейной, затем после этого она кажется пропускающей красный на графике, но не на легенде, то есть легенда говорит, что квадратичный должен быть красным, но график показывает его как зеленый, легенда гласит, что кубический цвет должен быть зеленым, но график показывает его как фиолетовый и т. д.

Любая помощь приветствуется.

1 Ответ

2 голосов
/ 10 мая 2010

Кривая lin должна быть исправлена ​​- теперь у вас просто набор точек вместо линии. quad и cub также должны быть исправлены (см. Ниже).

x = linspace(0,2);
e = exp(1);
lin = ones(size(x))*e; %#Now it's a vector with the same size as x
quad = e-e.*x.*x/2;
cub  = e-e.*x.*x/2;
quart = e-e.*x.*x/2+e.*x.*x.*x.*x/24;
act = e.^cos(x);
mplot = plot(x,act,x,lin,x,quad,x,cub,x,quart);
legend('actual','linear','quadratic','cubic','quartic')

Являются ли quad и cub одинаковыми? Может быть, это должно быть:

quad = e-e.*x.*x/2;
cub  = e-e.*x.*x.*x/2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...