我正在尝试contourf
绘制图,但数据数组的某些区域具有 NaN(仅在数据矩阵中,x 和 y 网格矩阵已满)。我希望这些 NaN 是透明的,它们用于矩形边界上的 NaN。但是,数据矩阵内的连续 NaN 区域是白色的,而不是透明的。下面是一个例子:
代码:
[X Y] = meshgrid(10:50);
Z = X.*Y;
Z(10:30,10:30) = NaN;
figure
imshow(uint8(repmat(1:4:240,[60,1,3])));
hold on;
contourf(X,Y,Z);
colormap jet;
输出:
暗示:
附加上面的代码:
% Find Face
set(findobj(h,'FaceColor',[1 1 1]),'FaceAlpha',0))
将找到白色补丁对象并将其设置为透明。不幸的是,下面的补丁已满:
更新:获取NaN
区域并叠加背景图像会导致:
如您所见,它没有覆盖整个图像。如果我使用imdilate
它会消除白色区域,但同时也会破坏黑色边框以及一些数据。