主要内容

为图表类编写构造函数

类的子类开发图表时ChartContainer基类,基类提供一个默认构造函数,该构造函数接受可选的名称-值对参数,用于设置图表属性。例如,该命令创建一个类的实例ConfidenceChart

ConfidenceChart (“XData”, x,“YData”, y,“ConfidenceMargin”, 0.15,“颜色”(1 0 0))

通过编写自定义构造函数方法,您可以提供一个接口,该接口接受单个参数值和可选的名称-值对参数。例如,您可以设计一个自定义构造函数来更改的调用语法ConfidenceChart因此,这两个命令都是创建图表的有效方法:

ConfidenceChart (x, y, 0.15) ConfidenceChart (x, y, 0.15,“颜色”(1 0 0))

当你编写构造函数方法时:

  • 在函数声明中指定要支持的输入参数。包括变长度输入宗量作为捕获用户指定的任何属性名称-值对参数的最后一个输入参数。

  • 调用ChartContainer在对图表对象的所有其他引用之前。

例如,下面的构造函数方法ConfidenceChart类执行以下任务:

  • 检查输入参数的数目,如果数目小于3则返回错误。

  • 转换xy,保证金的名称-值对参数ChartContainer构造函数接受并将结果存储在arg游戏

  • 的末尾追加任何用户指定的名称-值对参数arg游戏

  • 通过arg游戏ChartContainer构造函数方法。

方法函数obj = ConfidenceChart (x, y,边缘变长度输入宗量)检查至少三个输入如果Nargin < 3错误(没有足够的输入的);结束将x、y和margin转换为名称-值对args = {“XData”, x,“YData”, y,“ConfidenceMargin”,边缘};将args与用户提供的名-值对结合Args = [Args varargin];调用超类构造函数方法obj@matlab.graphics.chartcontainer.ChartContainer (args {:});结束结束

示例:使用自定义构造函数的置信边界图

这个例子展示了如何开发一个图表,该图表具有接受单值输入参数和可选名值对参数的自定义构造函数。该图表绘制了一条带有标记的线和一个周围的置信裕度。

创建一个名为ConfidenceChart.m在MATLAB的文件夹里®路径。按照以下步骤定义类。

一步 实现

源自ChartContainer基类。

classdefConfidenceChart < matlab.graphics.chartcontainer.ChartContainer

定义公共属性。

属性XData (1,:) double = NaN YData (1,:) double = NaN confidence emargin (1,1) double = 0.15 MarkerSymbol (1,:) char =“o”颜色(1、3)翻倍{mustBeGreaterThanOrEqual(颜色,0),...mustBeLessThanOrEqual(颜色,1)}= [100]结束

定义私有财产。

properties(Access = private,Transient,NonCopyable) LineObject (1,1) matlab.graphics.chart.primitive.Line PatchObject (1,1结束

方法实现自定义构造函数方法xy,保证金值和可选属性名称-值对参数。

方法函数obj = ConfidenceChart (x, y,边缘变长度输入宗量)检查至少三个输入如果Nargin < 3错误(没有足够的输入的);结束将x、y和margin转换为名称-值对args = {“XData”, x,“YData”, y,“ConfidenceMargin”,边缘};将args与用户提供的名-值对结合。Args = [Args varargin];调用超类构造函数方法obj@matlab.graphics.chartcontainer.ChartContainer (args {:});结束结束

实现设置方法。

方法(访问=保护)函数设置(obj)%得到坐标轴ax = getAxes (obj);创建补丁和对象obj。PatchObject =补丁(ax,南南“r”“FaceAlpha”, 0.2,...“EdgeColor”“没有”);(ax,“上”obj。LineObject =情节(ax,南南);(ax,“关闭”结束

实现更新方法。

函数更新(obj)更新Line的XData和YDataobj.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.Color = obj.Color;obj.PatchObject.FaceColor = obj.Color;%更新标记obj.LineObject.Marker = obj.MarkerSymbol;结束结束结束

接下来,创建一个实例ConfidenceChart.指定x- - -y-coordinates、边距值和标记符号。

x = 0:0.2:10;y = besselj (0, x);ConfidenceChart (x, y, 0.20,“MarkerSymbol”“>”);

另请参阅

功能

属性

相关的话题

Baidu
map