我有一个数字,它由使用保持功能绘制的不同等级的轮廓组成。我想用颜色填充轮廓水平之间的空间。你能帮我解决一下这个问题吗?我已经尝试过contourf功能。该图由不同的红色等级的轮廓组成,我想要的是在这些等高线之间填充的纯色。
答案 0 :(得分:0)
我不确定我是否得到了你想要的东西,但这里可以解决你的问题。
如果使用hold on函数绘制,我会假设您将每个轮廓放在一个不同的变量中。如果是这样,您可以使用逻辑来检查轮廓是否相对于另一个更高或更低。如果您的问题是每个都没有相同的x轴,那么您可以使用逻辑只插入每个轮廓(例如介于-0.8和0.8之间)
我将举例说明我的意思。看看这是否有帮助。
%simulated contours
x=linspace(0,pi,100);
y = sin(x);
y2 = sin(x)*2;
y3 = sin(x)*3;
figure, hold on,
plot(x,y),
plot(x,y2),
plot(x,y3),
%fill contours
[X,Y]=meshgrid(x,0:3/100:3);
zzz=(Y<repmat(y,size(Y,1),1))+(Y<repmat(y2,size(Y,1),1))+(Y<repmat(y3,size(Y,1),1));
figure,imagesc(zzz)
set(gca,'YDir','normal')