图形对象类型的完整列表 matlab
comprehensive list of graphics object types matlab
我找不到一个全面的图形对象类型列表,该列表对于在 matlab 绘图中查找修改对象特别有用,例如:
findall(gcf,'Type','Line'); %get all line objects in the current figure
更准确地说:我正在寻找参数 'Type' 后的可能输入列表。
我不知道获取综合列表的方法,但您可以获取现有对象的类型列表:
types = unique(get(findall(gcf, '-property', 'Type'), 'Type'));
实际上我认为这就足够了,因为我们对那些不存在的对象不感兴趣。
您可以通过嵌入一个绘图类型的包访问所有图形对象。为此,使用 metaclass
遍历绘图类型的元数据:
h = plot(rand(10,1));
% h is of type Line
现在我们使用 metaclass 获取关于 class 图片的所有元数据:
metah = metaclass(h);
一个不错的特性是它引用了 ContainingPackage
,我们可以通过 ClassList
访问所有 classes。在每个 class 中,您可以获得名称、class 的元数据以及在 class 层次结构中导航的方式。
出于我们的目的,我使用
简单地获得了原始图形的完整列表
{metah.ContainingPackage.ClassList.Name}
它在 R2017b 上给出了以下列表(排序后):
{'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'}
最后一个不是图形基元。可以看到缺少了class类似Image
,可以通过同样的流程访问:
h = image(rand(5));
metah = metaclass(h);
sort({metah.ContainingPackage.ClassList.Name}.'}
给出:
{'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' }
一些 classes 似乎在两个包中。我认为第二个列表是核心 classes,第一个列表是折线图的一些专用 classes(未修补)。但这只是猜测。
我认为我们应该拥有所有基本图形 classes,或者在其他包中还有其他图形 -- 如果有人知道这些其他包是什么,请告诉我们!
编辑
最后我找到了列出所有图形对象的文档页面。参见 here
我找不到一个全面的图形对象类型列表,该列表对于在 matlab 绘图中查找修改对象特别有用,例如:
findall(gcf,'Type','Line'); %get all line objects in the current figure
更准确地说:我正在寻找参数 'Type' 后的可能输入列表。
我不知道获取综合列表的方法,但您可以获取现有对象的类型列表:
types = unique(get(findall(gcf, '-property', 'Type'), 'Type'));
实际上我认为这就足够了,因为我们对那些不存在的对象不感兴趣。
您可以通过嵌入一个绘图类型的包访问所有图形对象。为此,使用 metaclass
遍历绘图类型的元数据:
h = plot(rand(10,1));
% h is of type Line
现在我们使用 metaclass 获取关于 class 图片的所有元数据:
metah = metaclass(h);
一个不错的特性是它引用了 ContainingPackage
,我们可以通过 ClassList
访问所有 classes。在每个 class 中,您可以获得名称、class 的元数据以及在 class 层次结构中导航的方式。
出于我们的目的,我使用
简单地获得了原始图形的完整列表{metah.ContainingPackage.ClassList.Name}
它在 R2017b 上给出了以下列表(排序后):
{'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'}
最后一个不是图形基元。可以看到缺少了class类似Image
,可以通过同样的流程访问:
h = image(rand(5));
metah = metaclass(h);
sort({metah.ContainingPackage.ClassList.Name}.'}
给出:
{'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' }
一些 classes 似乎在两个包中。我认为第二个列表是核心 classes,第一个列表是折线图的一些专用 classes(未修补)。但这只是猜测。
我认为我们应该拥有所有基本图形 classes,或者在其他包中还有其他图形 -- 如果有人知道这些其他包是什么,请告诉我们!
编辑 最后我找到了列出所有图形对象的文档页面。参见 here