2015-02-06 2 views
2

У меня есть MatLab скрипт, например, как это:Matlab Контур Участок Legend в R2014b отличается от предыдущих версий

x = linspace(-2*pi,2*pi); 
y = linspace(0,4*pi); 
[X,Y] = meshgrid(x,y); 
Z = sin(X)+cos(Y); 
Z1 = cos(.5*X) + sin(2*Y); 

figure 
[c h] = contour(X,Y,Z, '-r') 
hold on 
[c1 h2] = contour(X,Y,Z1, '-b') 
legend('test1', 'test2') 

У меня есть два контура участки на том же участке, один показано красным, другой показаны синим цветом. Проблема в том, что легенда не отображается в красных и синих тонах. В старой версии matlab это работало отлично, но как вы должны определить легенду в R2014b, чтобы она имела красные контуры рядом с «тестом 1» и синими контурами рядом с «тестом 2»?

У кого-то еще был очень похожий вопрос на mathcentral, но на него не ответил: http://www.mathworks.com/matlabcentral/answers/164210-how-does-the-contour-plot-with-r2014b-work.

Спасибо!

+0

вы смотрели на [ 'clegendm'] (http://fr.mathworks.com/help/map/ref/ clegendm.html)? – Ratbert

ответ

1

Согласно документации, в R2014b «Цветная панель и легенда имеют новые свойства и не поддерживают некоторые свойства осей». Поскольку ручка возвращается contour, теперь объект Contour, вы можете немного сделать.

Тем не менее, чтобы получить желаемое поведение у вас есть это ужасно некрасивый хак:

x = linspace(-2*pi,2*pi); 
y = linspace(0,4*pi); 
[X,Y] = meshgrid(x,y); 
Z = sin(X)+cos(Y); 
Z1 = cos(.5*X) + sin(2*Y); 

figure 
hold on 

[~, h1] = contour(X,Y,Z, '-r'); 
h1_ = plot(NaN, '-r'); 
[~, h2] = contour(X,Y,Z1, '-b'); 
h2_ = plot(NaN, '-b'); 

L = legend([h1_ h2_], 'test 1', 'test 2'); 
Смежные вопросы