的子类开发图表时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))
当你编写构造函数方法时:
指定要在函数声明中支持的输入参数。万博1manbetx包括变长度输入宗量
作为捕获用户指定的任何属性名称-值对参数的最后输入参数。
调用ChartContainer
构造函数在所有其他对图表对象的引用之前。
例如,下面的构造函数方法ConfidenceChart
类执行以下任务:
检查输入参数的数量,如果数量小于3,则返回一个错误。
转换x
,y
,保证金
的名称-值对参数ChartContainer
构造函数接受,并将结果存储在arg游戏
.
将任何用户指定的名称-值对参数附加到末尾arg游戏
.
通过arg游戏
到ChartContainer
构造函数方法。
方法函数obj = ConfidenceChart (x, y,边缘变长度输入宗量)检查至少三个输入如果Nargin < 3错误(没有足够的输入的);结束%将x、y和边距转换为名称-值对args = {“XData”, x,“YData”, y,“ConfidenceMargin”,边缘};%将参数与用户提供的名称-值对组合Args = [Args varargin];%调用超类构造函数方法obj@matlab.graphics.chartcontainer.ChartContainer (args {:});结束结束
这个示例展示了如何开发一个具有接受单值输入参数和可选名称-值对参数的自定义构造函数的图表。该图表绘制了一条带有标记的线和周围的置信边界。
创建一个名为ConfidenceChart.m
在MATLAB中的一个文件夹中®路径。按照以下步骤定义类。
一步 | 实现 |
---|---|
源自 |
classdefConfidenceChart < matlab.graphics.chartcontainer.ChartContainer
|
定义公共属性。 |
属性XData (1,:) double = NaN YData (1,:) double = NaN confencemargin (1,1) double = 0.15 marksymbol (1,:) char =“o”颜色(1、3)翻倍{mustBeGreaterThanOrEqual(颜色,0),...mustBeLessThanOrEqual(颜色,1)}= [100]结束 |
定义私有财产。 |
matlab.graphics.chart.primitiv . line PatchObject (1,1) matlab.graphics.primitiv . patch . properties(private,Transient,NonCopyable结束
|
的自定义构造函数实现 |
方法函数obj = ConfidenceChart (x, y,边缘变长度输入宗量)检查至少三个输入如果Nargin < 3错误(没有足够的输入的);结束%将x、y和边距转换为名称-值对args = {“XData”, x,“YData”, y,“ConfidenceMargin”,边缘};%将参数与用户提供的名称-值对组合。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坐标、边距值和标记符号。
x = 0:0.2:10;y = besselj (0, x);ConfidenceChart (x, y, 0.20,“MarkerSymbol”,“>”);