获取图中所有边或所有面片的句柄

时间:2014-09-07 05:28:57

标签: matlab plot matlab-figure handle mesh

在Matlab中使用诸如trimesh之类的函数时,会绘制许多'line'个对象(即网格的边缘)。现在我需要更改所有这些属性。

如何获取属于特定绘图(即一组轴)的所有'line'个对象的句柄列表? 'patch'个对象也是如此。

1 个答案:

答案 0 :(得分:2)

正如post中所述:

获取当前轴上的所有'line'个对象:

lines = findobj(gca, 'type', 'line');

对于补丁,它类似。

显示当前轴下的对象类型也很有帮助。例如:

>> mesh(magic(5))
>> get(findobj(gca), 'type')

ans = 

    'axes'
    'surface'

如果有许多行,例如在trimesh之后,我们只想知道轴对象中有哪些不同类型的对象:

>> unique(get(findobj(gca), 'type'))

ans = 

    'axes'
    'line'

更有用
>> get(findobj(gca), 'type')

ans = 

    'axes'
    'line'
    'line'
    'line'
    'line'
    'line'
    ...

以下是如何在所有这些设置属性的示例:

set(findobj(gca, 'type', 'surface'), 'FaceColor', 'interp')