图发展概述
图表等功能情节
,散射
,酒吧
使您能够快速可视化数据与基本控制颜色和线条样式等方面。创建自定义的图表,你可以结合多个图形对象,这些对象设置属性,或调用其他函数。R2019a和更早的版本中,一个常见的方式来存储您的定制代码和与他人分享是编写一个脚本或一个函数。
从R2019b开始,您可以创建一个类的定义一个子类实现你的图表ChartContainer
基类。创建一个类使您能够:
为用户提供一个方便的界面,当用户想要定制你的图表的一个方面,他们可以设置一个属性,而不必修改并重新运行图形代码。用户可以修改属性在命令行或检查在属性检查器。
封装算法和原始图形对象——你实现方法,执行计算和管理底层的图形对象。以这种方式组织代码允许您从您的用户隐藏实现细节。
当你定义一个图表,来源于这个基类,你的图的实例图形对象层次结构的成员。作为一个结果,你的图表与图形系统的许多方面兼容。例如,gca
和findobj
函数可以返回你的图的实例。
图表类的结构
的第一行指定一个图表类matlab.graphics.chartcontainer.ChartContainer
类的超类。例如,第一行类的调用ConfidenceChart
是这样的:
classdefConfidenceChart < matlab.graphics.chartcontainer.ChartContainer
除了指定父类,在类定义中包含以下组件。
隐式构造函数方法
你不需要写一个类的构造函数方法,因为继承了一个构造函数ChartContainer
基类。构造函数接受可选的输入参数:一个父容器和任意数量的名称-值对参数设置属性的图。例如,如果你定义一个类调用ConfidenceChart
公共属性XData
和YData
,您可以创建您的类的一个实例使用这些命令:
c = ConfidenceChart (gcf“XData”(1 2 3),“YData”,4 5 6)c = ConfidenceChart (“XData”(1 2 3),“YData”(4 5 6))
如果你想提供一个接口,它接受输入参数以同样的方式作为一个典型的函数,您可以定义一个自定义构造函数方法。看到编写表类的构造函数为更多的信息。
公共和私人财产
把你的至少两个街区之间的类属性:
公共块用于存储面向用户界面的组件
一个私人块用于存储你想隐藏的实现细节
在公共的属性块存储用户提供的输入值。例如,一个图表,显示一行可能存储x- - -y在两个公共属性坐标向量。因为属性名称-值对参数是可选的输入隐式的构造函数方法,推荐的方法是初始化公共属性的默认值。如果你定义存储协调公共属性值,初始化南
值或空数组构造一个空表如果用户调用构造函数没有任何输入。
在私人的属性块存储底层图形对象构成你的图表,除了要存储任何计算值。最终,你的类将使用公共属性配置底层中的数据对象。通过包括瞬态
和NonCopyable
属性为私营,你避免存储冗余信息如果用户复制或保存的实例图。
例如,下面是属性块图表显示行
对象和一个补丁
对象。公共财产的块存储值,用户可以控制:x- - -y线的坐标,信心的优势价值,象征,标志和颜色值。私有财产的块存储行
和补丁
对象。
属性XData =南YData MarkerSymbol = =南ConfidenceMargin = 0.15“o”颜色= [1 0 0]结束属性(=私人访问,瞬态NonCopyable) LineObject PatchObject结束
设置方法
的设置
方法执行当MATLAB构造图对象。任何属性值作为名称-值对参数传递给构造函数方法该方法执行后被分配。
使用设置
方法:
调用绘图函数创建原始图形对象要使用的图表。
存储原始对象返回的绘图函数作为私人属性图对象。
配置基本图形对象。
配置轴。
许多图形功能有一个可选的输入参数用于指定目标轴对象。这些功能包括(如绘图功能情节
,散射
,酒吧
)和功能修改轴(如持有
,网格
,标题
)。当您调用这些类型的函数在一个类方法,您必须指定目标轴对象。您可以访问坐标轴对象通过调用getAxes
方法。这个方法返回坐标轴对象,或者创建一个笛卡尔轴对象如果图表不已经包含一个坐标轴对象。
谨慎
调用绘图函数或函数修改轴,没有指定目标轴可能产生意想不到的结果。
当你调用绘图函数设置
方法,指定临时值(如南
坐标数据)。同时,其他参数指定临时值对应于你的类的公共属性。这样做可以避免设置在相同的属性值设置
和更新
方法。
如果你想在坐标轴显示多个原始对象,调用持有
之间的函数绘图命令。放回到状态“关闭”
在你最后的绘图命令。
例如,考虑一个图表,显示一行和一个补丁。它有这些属性:
两个公共属性称为
XData
和YData
用于存储的x- - -y线的坐标两个私有属性称为
LineObject
和PatchObject
的设置
通过调用方法获得轴对象getAxes
方法。然后它调用补丁
功能和存储的输出PatchObject
财产。下一行的代码设置轴的状态“上”
在调用之前情节
函数创建LineObject
财产。最后一行的代码设置轴状态回“关闭”
。
函数设置(obj)%的轴ax = getAxes (obj);%创建补丁和线对象obj。PatchObject =补丁(ax,南南“r”,“FaceAlpha”,0.2,…“EdgeColor”,“没有”);(ax,“上”obj。行Object = plot(ax,NaN,NaN);%关掉保持状态(ax,“关闭”)结束
更新方法
当用户更改一个或多个图表对象上的属性值,MATLAB是图表对象的更新。的更新
后第一次运行方法设置
方法运行。那么下次运行drawnow
执行。的drawnow
定期自动执行函数,基于MATLAB的图形环境中用户的会话。因此,改变属性值之间可能会有延迟,看到这些变化的结果。
使用更新
方法重新配置底层图形对象在你的图表基于公共属性的新值。通常,这种方法不区分公共属性的改变。重新配置底层图形对象的各个方面,依赖于公共属性。
例如,考虑一个图表,这些属性:
两个公共属性称为
XData
和颜色
两个私有属性称为
LineObject
和PatchObject
的更新
方法的更新XData
和颜色
的属性行
和补丁
对象。
函数更新(obj)%更新XData线对象obj.LineObject。XData= obj.XData;%更新补丁XDatax = obj.XData;obj.PatchObject。XData= [x x(end:-1:1)];%更新线对象的颜色obj.LineObject。颜色= obj.Color; obj.PatchObject.FaceColor = obj.Color;结束
例如:信心界限图
这个例子展示了如何创建一个图来绘制一条线与信心。创建一个类定义文件命名ConfidenceChart.m
在一个文件夹,在MATLAB路径。通过以下步骤定义类。
一步 | 实现 |
---|---|
源自 |
classdefConfidenceChart < matlab.graphics.chartcontainer.ChartContainer
|
定义公共属性。 |
属性XData =南YData MarkerSymbol = =南ConfidenceMargin = 0.15“o”颜色= [1 0 0]结束 |
定义私有财产。 |
属性(=私人访问,瞬态NonCopyable) LineObject PatchObject结束 |
实现 把轴回到状态 |
方法(访问=保护)函数设置(obj)%的轴ax = getAxes (obj);%创建补丁和线对象obj。PatchObject =补丁(ax,南南“r”,“FaceAlpha”,0.2,…“EdgeColor”,“没有”);(ax,“上”obj。行Object = plot(ax,NaN,NaN);%关掉保持状态(ax,“关闭”)结束 |
实现 |
函数更新(obj)%更新XData YData线obj.LineObject。XData= obj.XData; obj.LineObject.YData = obj.YData;%更新补丁XData和YDatax = obj.XData;obj.PatchObject。XData= [x x(end:-1:1)]; y = obj.YData; c = obj.ConfidenceMargin; obj.PatchObject.YData = [y+c y(end:-1:1)-c];%更新颜色obj.LineObject。颜色= obj.Color; obj.PatchObject.FaceColor = obj.Color;%更新标记obj.LineObject。标志= obj.MarkerSymbol;结束结束结束 |
接下来,创建的实例图通过调用构造函数隐式方法的一些公共属性:
x = 0:0.2:10;y = besselj (0, x);c = ConfidenceChart (“XData”,x,“YData”,y,“ConfidenceMargin”,0.15);
改变颜色。
c。颜色= (0 0 1);
提示
除了文档中提供的例子,你可以找到各种各样的社区创建的例子文件交换在MATLAB中央™。
万博1manbetx支持常见的图形特性
默认情况下,您的图表支持实例的功能,是常见的所有MATLAB图表。万博1manbetx例如,gca
和findobj
函数可以返回你的图的实例。你也可以通过你的图的实例集
和得到
功能,您可以配置表的属性在属性检查器。
这个表中描述的功能只支持如果你让他们为你的图表。万博1manbetx
功能 | 描述 | 更多的信息 |
---|---|---|
传说 | 启用 |
matlab.graphics.chartcontainer.mixin.Legend |
Colorbar | 启用 |
matlab.graphics.chartcontainer.mixin.Colorbar |
不同类型的轴或多轴 | 显示一个或多个笛卡尔、极地或地理的情节。 |
开发带有极轴的图表、地理轴或多轴 |
功能 | 坐标轴上启用设置属性的函数,如 |
使便利功能设置轴属性 |
保存和加载 | 存储变化后与用户交互的图表,这样他们就可以保存图表并恢复其状态时加载它回MATLAB。 |
保存和加载图类的实例 |