用 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')
此对象在其属性 XData
、YData
和 ZData
中包含用于绘图的所有数据。可以通过
确定带有数据并已绘制(但可能不在可见范围内)的最大 x 值
xd = get(childHandle, 'XData');
maximumXWithData = max(xd(:));
我在 Matlab R2012a/R2014a(=使用旧图形系统)中的 pcolor 图中有一个显示地图的图,我想实现平移和缩放。
因为数据集非常大(并且需要从矢量数据进行插值),所以我不希望以高分辨率绘制整个区域,而是只绘制其中的一小部分,然后四处移动。但是一旦我平移出这个子区域,我想重做情节,这样它就包含下一个子区域。
有没有什么方法可以像我通过 get(myAxes, '[XY]lim')
获取当前显示区域的限制一样,通过 axes
对象中的数据获取区域的限制?这样我就可以只在必要时重新绘制。
解决方法是每次执行 pcolor 时都将限制存储在句柄结构中,但我想知道是否有针对这种情况的内置内容。
我找到了解决办法。
该区域未存储在轴对象本身中,而是存储在其子对象之一(包含实际绘图的对象)中。如果为 pcolor
图键入 surface
,为 contour
图键入 hggroup
。所以你可以通过
childHandle = plotfindall(myAxes, 'Type', 'surface')
此对象在其属性 XData
、YData
和 ZData
中包含用于绘图的所有数据。可以通过
xd = get(childHandle, 'XData');
maximumXWithData = max(xd(:));