首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >图形对象类型的综合列表

图形对象类型的综合列表
EN

Stack Overflow用户
提问于 2017-09-09 17:10:46
回答 2查看 268关注 0票数 3

我找不到一个全面的图形对象类型列表,该列表对于在matlab中查找修改对象特别有用,例如:

代码语言:javascript
运行
复制
findall(gcf,'Type','Line'); %get all line objects in the current figure

更准确地说:我正在寻找一个在参数'Type‘之后可能输入的列表。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-09 18:57:57

我不知道如何获得全面的列表,但是您可以获得现有对象的类型列表:

代码语言:javascript
运行
复制
types = unique(get(findall(gcf, '-property', 'Type'), 'Type'));

实际上,我认为这就足够了,因为我们对那些不存在的对象不感兴趣。

票数 4
EN

Stack Overflow用户

发布于 2018-03-05 12:36:04

您可以通过嵌入一个图的类型的包访问所有图形视图。为此,使用metaclass来遍历图类型的元数据:

代码语言:javascript
运行
复制
h = plot(rand(10,1));
% h is of type Line

现在,我们使用元类获取关于类Image的所有元数据:

代码语言:javascript
运行
复制
metah = metaclass(h);

一个很好的特性是它引用了ContainingPackage,在其中我们可以通过ClassList访问所有类。在每个类中,您可以获得名称、类元数据以及在类层次结构中导航的方法。

为了我们的目的,我使用

代码语言:javascript
运行
复制
{metah.ContainingPackage.ClassList.Name}

它给出了R2017b上的以下列表(排序后):

代码语言:javascript
运行
复制
{'matlab.graphics.chart.primitive.Area'         }
{'matlab.graphics.chart.primitive.Bar'          }
{'matlab.graphics.chart.primitive.Binscatter'   }
{'matlab.graphics.chart.primitive.ConstantLine' }
{'matlab.graphics.chart.primitive.Contour'      }
{'matlab.graphics.chart.primitive.Data3D'       }
{'matlab.graphics.chart.primitive.ErrorBar'     }
{'matlab.graphics.chart.primitive.FunctionLine' }
{'matlab.graphics.chart.primitive.GraphPlot'    }
{'matlab.graphics.chart.primitive.Heatmap'      }
{'matlab.graphics.chart.primitive.Histogram'    }
{'matlab.graphics.chart.primitive.Histogram2'   }
{'matlab.graphics.chart.primitive.Line'         }
{'matlab.graphics.chart.primitive.Quiver'       }
{'matlab.graphics.chart.primitive.Scatter'      }
{'matlab.graphics.chart.primitive.Stair'        }
{'matlab.graphics.chart.primitive.Stem'         }
{'matlab.graphics.chart.primitive.Surface'      }
{'matlab.graphics.chart.primitive.brushingUtils'}

最后一个不是图形原语。您可以看到,它缺少像Image这样的类,可以通过相同的进程访问这些类:

代码语言:javascript
运行
复制
h = image(rand(5));
metah = metaclass(h);
sort({metah.ContainingPackage.ClassList.Name}.'}

这意味着:

代码语言:javascript
运行
复制
{'matlab.graphics.primitive.Data'          }
{'matlab.graphics.primitive.Group'         }
{'matlab.graphics.primitive.Image'         }
{'matlab.graphics.primitive.Light'         }
{'matlab.graphics.primitive.Line'          }
{'matlab.graphics.primitive.Marker'        }
{'matlab.graphics.primitive.Patch'         }
{'matlab.graphics.primitive.Polygon'       }
{'matlab.graphics.primitive.Rectangle'     }
{'matlab.graphics.primitive.Surface'       }
{'matlab.graphics.primitive.SurfaceXYZData'}
{'matlab.graphics.primitive.Text'          }
{'matlab.graphics.primitive.Transform'     }

有些类似乎都包含在这两个包中。我认为第二个列表是核心类,第一个列表是一些专门用于线条图的类(不是修补程序)。但这只是猜测。

我认为我们应该有所有的基本图形类,或者在其他包中还有其他图形--如果有人知道这些其他包是什么,请告诉我们!

编辑终于找到了列出所有图形对象的文档页面。请参阅这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46133129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档