用 pcolor 图中的数据确定区域

Determining the region with data in a pcolor plot

我在 Matlab R2012a/R2014a(=使用旧图形系统)中的 pcolor 图中有一个显示地图的图,我想实现平移和缩放。

因为数据集非常大(并且需要从矢量数据进行插值),所以我不希望以高分辨率绘制整个区域,而是只绘制其中的一小部分,然后四处移动。但是一旦我平移出这个子区域,我想重做情节,这样它就包含下一个子区域。

有没有什么方法可以像我通过 get(myAxes, '[XY]lim') 获取当前显示区域的限制一样,通过 axes 对象中的数据获取区域的限制?这样我就可以只在必要时重新绘制。

解决方法是每次执行 pcolor 时都将限制存储在句柄结构中,但我想知道是否有针对这种情况的内置内容。

我找到了解决办法。

该区域未存储在轴对象本身中,而是存储在其子对象之一(包含实际绘图的对象)中。如果为 pcolor 图键入 surface,为 contour 图键入 hggroup。所以你可以通过

找到它
childHandle = plotfindall(myAxes, 'Type', 'surface')

此对象在其属性 XDataYDataZData 中包含用于绘图的所有数据。可以通过

确定带有数据并已绘制(但可能不在可见范围内)的最大 x 值
xd = get(childHandle, 'XData');
maximumXWithData = max(xd(:));