我有一个像这样的matlab脚本:
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'?
旁边的蓝色和蓝色轮廓其他人在数学中有一个非常相似的问题,但没有得到答案:http://www.mathworks.com/matlabcentral/answers/164210-how-does-the-contour-plot-with-r2014b-work。
谢谢!
答案 0 :(得分:1)
根据文档,在R2014b&#34中; Colorbar和图例具有新属性,并且不支持某些轴属性"。由于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');