主要内容

图发展概述

图表等功能情节,散射,酒吧使您能够快速可视化数据与基本控制颜色和线条样式等方面。创建自定义的图表,你可以结合多个图形对象,这些对象设置属性,或调用其他函数。R2019a和更早的版本中,一个常见的方式来存储您的定制代码和与他人分享是编写一个脚本或一个函数。

从R2019b开始,您可以创建一个类的定义一个子类实现你的图表ChartContainer基类。创建一个类使您能够:

  • 为用户提供一个方便的界面,当用户想要定制你的图表的一个方面,他们可以设置一个属性,而不必修改并重新运行图形代码。用户可以修改属性在命令行或检查在属性检查器。

  • 封装算法和原始图形对象——你实现方法,执行计算和管理底层的图形对象。以这种方式组织代码允许您从您的用户隐藏实现细节。

当你定义一个图表,来源于这个基类,你的图的实例图形对象层次结构的成员。作为一个结果,你的图表与图形系统的许多方面兼容。例如,gcafindobj函数可以返回你的图的实例。

图表类的结构

的第一行指定一个图表类matlab.graphics.chartcontainer.ChartContainer类的超类。例如,第一行类的调用ConfidenceChart是这样的:

classdefConfidenceChart < matlab.graphics.chartcontainer.ChartContainer

除了指定父类,在类定义中包含以下组件。

组件 描述

公共财产块
(推荐)

这个块定义的所有属性,你想让你的用户能够访问。在一起,这些属性的用户界面图。

私有财产块
(推荐)

这个块存储底层图形对象和其他实现细节,你不希望用户访问。

在这一块,设置这些属性值:

  • 访问=私人

  • 瞬态

  • NonCopyable

设置方法
(必需)

该方法集的初始状态图。MATLAB时执行一次®构造对象。

在一个受保护块定义这个方法。

更新方法
(必需)

这种方法更新底层对象在你的图表。它执行在未来drawnow后执行,用户更改一个或多个属性值。

定义这个方法在同一块作为保护设置方法。

隐式构造函数方法

你不需要写一个类的构造函数方法,因为继承了一个构造函数ChartContainer基类。构造函数接受可选的输入参数:一个父容器和任意数量的名称-值对参数设置属性的图。例如,如果你定义一个类调用ConfidenceChart公共属性XDataYData,您可以创建您的类的一个实例使用这些命令:

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方法。这个方法返回坐标轴对象,或者创建一个笛卡尔轴对象如果图表不已经包含一个坐标轴对象。

谨慎

调用绘图函数或函数修改轴,没有指定目标轴可能产生意想不到的结果。

当你调用绘图函数设置方法,指定临时值(如坐标数据)。同时,其他参数指定临时值对应于你的类的公共属性。这样做可以避免设置在相同的属性值设置更新方法。

如果你想在坐标轴显示多个原始对象,调用持有之间的函数绘图命令。放回到状态“关闭”在你最后的绘图命令。

例如,考虑一个图表,显示一行和一个补丁。它有这些属性:

  • 两个公共属性称为XDataYData用于存储的x- - -y线的坐标

  • 两个私有属性称为LineObjectPatchObject

设置通过调用方法获得轴对象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颜色

  • 两个私有属性称为LineObjectPatchObject

更新方法的更新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路径。通过以下步骤定义类。

一步 实现

源自ChartContainer基类。

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,“关闭”)结束

实现更新方法。在这种情况下,更新x- - -y坐标、颜色和标记符号的潜在对象。

函数更新(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例如,gcafindobj函数可以返回你的图的实例。你也可以通过你的图的实例得到功能,您可以配置表的属性在属性检查器。

这个表中描述的功能只支持如果你让他们为你的图表。万博1manbetx

功能 描述 更多的信息
传说

启用传说图工具栏功能和传说工具。

matlab.graphics.chartcontainer.mixin.Legend
Colorbar

启用colorbar功能和colorbar工具图工具栏。

matlab.graphics.chartcontainer.mixin.Colorbar
不同类型的轴或多轴

显示一个或多个笛卡尔、极地或地理的情节。

开发带有极轴的图表、地理轴或多轴
功能

坐标轴上启用设置属性的函数,如标题,xlim,ylim功能。

使便利功能设置轴属性
保存和加载

存储变化后与用户交互的图表,这样他们就可以保存图表并恢复其状态时加载它回MATLAB。

保存和加载图类的实例

另请参阅

功能

属性

相关的话题