用pcolor图中的数据确定区域

时间:2015-02-19 13:26:44

标签: matlab plot axes

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

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

是否有某种方法可以通过axes获取get(myAxes, '[XY]lim')对象中数据的区域限制,与我通过{{1}}的当前显示区域的限制相同?这样我只有在必要时才可以重新绘制。

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

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

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

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

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

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