0

我正在尝试创建一个计数图,左下角的区域被涂白。下图中每个矩形的角处提供了轮廓值,网格上的所有其他点的值为 NaN。

我想知道如何阻止 countourf 图在白色正方形的右上角绘制三角形部分,即如何阻止它在这两个值之间进行插值。

结束游戏:我想要左下角的一个完整的白色矩形,而不是倒角矩形。

在此处输入图像描述

4

2 回答 2

1

你得到那个三角形是因为在那个特定的正方形上你的数据看起来像:

[1     2 ;...
 NaN   3]

这是一个完全有效的右上角三角形轮廓。

因此,您可以对数据进行插值以获得更高的分辨率并使三角形更小。或者您可以只使用patch在所需位置添加一个白色方块。

data=rand(8);
data(1:4,1:4)=NaN;
contourf(data)

在此处输入图像描述

hold on;
patch([1 1 5 5],[1 5 5 1],'w')

在此处输入图像描述

于 2016-12-23T07:33:12.540 回答
0

它看起来像一个边七个正方形,所以我们可以设置

x = 1:7;
[XX,YY] = meshgrid(x); % create x,y grid for the square
ZZ = nan(7); % create number grid for the square
ZZ(1:3,1:3)=ones(3); % set the lower 3x3 to 1

figure;
hold on % hold your plot
plot()% your contour
imagesc(XX,YY,ZZ); % Or similar

这是大纲,由于您没有显示代码,我无法确定您需要什么确切的绘图功能。一般来说,这个想法是创建一个与等高线图一样大的网格,并将左下角的正方形设置为1,因此为白色,其余部分为NaN,因此不绘制。

于 2016-12-22T22:01:18.897 回答