我在Matlab R2012a / R2014a(=使用旧图形系统)的pcolor图中显示了一个地图,并希望实现平移和缩放。
因为数据集非常大(并且需要从矢量数据进行插值),所以我不希望以高分辨率绘制整个区域,而只是其中的一小部分,然后平移。但是,一旦我走出这个次区域,我就想重做一下情节,以便它包含下一个次区域。
是否有某种方法可以通过axes
获取get(myAxes, '[XY]lim')
对象中数据的区域限制,与我通过{{1}}的当前显示区域的限制相同?这样我只有在必要时才可以重新绘制。
解决方法是每次执行pcolor时将限制存储在句柄结构中,但我想知道是否有针对此情况构建的内容。
答案 0 :(得分:0)
我找到了解决方案。
该区域不存储在轴对象本身中,而是存储在其中一个子对象中(包含实际图形的子对象)。如果surface
的图表为pcolor
,则为hggroup
图表为contour
。所以你可以通过
childHandle = plotfindall(myAxes, 'Type', 'surface')
此对象包含用于在其属性XData
,YData
和ZData
中绘图的所有数据。可以通过
xd = get(childHandle, 'XData');
maximumXWithData = max(xd(:));