【问题标题】:Determining the region with data in a pcolor plot用 pcolor 图中的数据确定区域
【发布时间】:2015-02-19 13:26:44
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: matlab plot axes


    【解决方案1】:

    我找到了解决办法。

    该区域不存储在坐标区对象本身中,而是存储在它的一个子对象中(包含实际绘图的那个)。如果为pcolor 绘图输入surface,为contour 绘图输入hggroup。所以你可以通过

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-23
      • 2019-01-15
      • 2014-05-12
      • 2010-10-12
      • 1970-01-01
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      相关资源
      最近更新 更多