的子类开发图表时ChartContainer
类,考虑启用一些MATLAB®用于设置轴上属性的方便函数。例如,可以将类设计为支持金宝app标题
函数。通过启用方便的函数,您可以提供与MATLAB绘图函数一致的用户体验。
启用方便函数的方式取决于该函数控制的是非计算属性还是计算属性。该表列出了您可以支持的便利函数。金宝app
非计算属性是固定值。除非用户或您的代码显式地更改它们,否则它们不会更改。
要为非计算属性启用方便的函数,请在类中定义一个公共属性,该属性存储要控制的axes属性的值。然后定义一个公共方法,该方法与您希望支持的方便函数具有相同的名称并支持相同的调用语法。金宝app向设置属性值的方法添加一行代码。例如,考虑一个类,它有一个名为TitleText
用于存储标题。下面的代码显示了标题
方法。
函数标题(obj, txt) obj。TitleText =三种;结束
接下来,将一行代码添加到更新
方法,调用MATLAB方便函数设置相应的轴属性。
标题(getAxes (obj) obj.TitleText);
执行上述步骤并保存类文件之后,可以创建图表的实例并调用标题
函数显示标题。这样做会触发这个调用序列:
的标题
方法的TitleText
属性,该属性标记要更新的图表。
下次drawnow
执行,更新
方法执行并调用标题
函数在坐标轴上。
的标题
功能更新标题
属性在轴上。
计算属性由坐标轴控制。轴根据轴和底层数据的内容重新计算它们的值。
要为计算属性启用方便函数,请定义与希望启用的方便函数具有相同名称和调用语法的方法。在该方法中,调用便利函数并将坐标轴指定为第一个参数。例如,要启用xlim
函数,定义一个被调用的方法xlim
在你的类中。自xlim
函数接受可变数量的输入参数,必须指定变长度输入宗量
作为第二个输入参数。的xlim
函数还支持可变数量的输出参数金宝app,因此必须指定[varargout {1: nargout}]
来支持金宝app这些论点。
函数varargout = xlim(obj,varargin) ax = getAxes(obj);[varargout {1: nargout}] = xlim (ax,变长度输入宗量{:});结束
要提供对图表中相应属性值的访问,请在类上定义两个相关属性。第一个属性提供了对便利函数控制的值的访问。另一个属性提供对mode属性的访问,mode属性指示如何控制第一个属性。mode属性的值可以为“汽车”
或“手动”
.将这些属性定义为依赖属性,这样图表就不会存储这些值。轴控制并存储这些值。例如,提供对XLim
和XLimMode
属性,定义一对相关属性称为XLimits
和XLimitsMode
.
属性(依赖)XLimits双(1、2)XLimitsMode{mustBeMember (XLimitsMode{“自动”、“手动”})}结束
接下来,定义集
和得到
方法。在每个方法中,设置相应的axes属性。下面的代码显示了集
方法和得到
方法XLimits
和XLimitsMode
属性。
函数set.XLimits(obj,xlm) ax = getAxes(obj);斧子。XLim = xlm;结束函数xlm = get.XLimits(obj) ax = getAxes(obj);xlm = ax.XLim;结束函数set.XLimitsMode(obj,xlmmode) ax = getAxes(obj);斧子。XLimMode = xlmmode;结束函数xlm = get.XLimitsMode(obj) ax = getAxes(obj);xlm = ax.XLimMode;结束
执行上述步骤并保存类文件之后,可以创建图表的实例并调用xlim
函数更改x-axis限制。的xlim
方法执行,该方法又调用xlim
函数更新XLim
属性在轴上。
请注意
默认情况下,当用户调用时,MATLAB不存储任何更改xlim
和ylim
功能。要提供在用户保存和加载金宝app图表时保存这些更改的支持,请参见保存和加载图表类的实例.
标题
,xlim
,ylim
功能这个例子展示了如何定义一个支持金宝app标题
,xlim
,ylim
功能。下面的代码演示了如何:
定义一个TitleText
属性并实现标题
方法,以便图表实例支持金宝app标题
函数。
实现xlim
和ylim
方法,以便图表实例支持金宝appxlim
和ylim
功能。
定义允许用户获取和设置x- - -y设在限制。
结合酒吧
和ErrorBar
对象放入单个图表中。
要定义类,请将此代码复制到编辑器中,并使用名称保存它BarErrorBarChart.m
在一个可写文件夹中。
classdefBarErrorBarChart < matlab.graphics.chartcontainer.ChartContainer属性XData(: 1)增加一倍=南YData(: 1)增加一倍=南EData(: 1)增加一倍=南TitleText(::) char=''结束属性(依赖)%提供属性来支持设置和获取金宝appXLimits双(1、2)XLimitsMode{mustBeMember (XLimitsMode{“自动”、“手动”})}YLimits双(1、2)YLimitsMode{mustBeMember (YLimitsMode{“自动”、“手动”})}结束属性(Access = private(1,1) matlab.graphics.chart.primitive.BarErrorBarObject(1,1) matlab.graphics.chart.primitive.ErrorBar结束方法(访问=保护)函数setup(obj) ax = getAxes(obj);obj。酒吧Object = bar(ax,NaN,NaN); hold(ax,“上”obj。ErrorBarObject = errorbar (ax,南南南);obj.ErrorBarObject.LineStyle =“没有”;obj.ErrorBarObject.LineWidth = 2;obj.ErrorBarObject.Color = [0.6 0.7 1];(ax,“关闭”);结束函数更新(obj)%更新栏和错误栏XData和YDataobj.BarObject.XData = obj.XData;obj.BarObject.YData = obj.YData;obj.ErrorBarObject.XData = obj.XData;obj.ErrorBarObject.YData = obj.YData;%更新错误条的增量值obj.ErrorBarObject.YNegativeDelta = obj.EData;obj.ErrorBarObject.YPositiveDelta = obj.EData;%更新坐标轴标题ax = getAxes (obj);标题(ax, obj.TitleText);结束结束方法% xlim方法函数varargout = xlim(obj,varargin) ax = getAxes(obj);[varargout {1: nargout}] = xlim (ax,变长度输入宗量{:});结束% ylim方法函数varargout = ylim(obj,varargin) ax = getAxes(obj);[varargout {1: nargout}] = ylim (ax,变长度输入宗量{:});结束%标题的方法函数标题(obj, txt) obj。TitleText =三种;结束为XLimits和XLimitsMode设置和获取方法函数set.XLimits(obj,xlm) ax = getAxes(obj);斧子。XLim = xlm;结束函数xlm = get.XLimits(obj) ax = getAxes(obj);xlm = ax.XLim;结束函数set.XLimitsMode(obj,xlmmode) ax = getAxes(obj);斧子。XLimMode = xlmmode;结束函数xlm = get.XLimitsMode(obj) ax = getAxes(obj);xlm = ax.XLimMode;结束为YLimits和YLimitsMode设置和获取方法函数set.YLimits(obj,ylm) ax = getAxes(obj);斧子。YLim = ylm;结束函数ylm = get.YLimits(obj) ax = getAxes(obj);ylm = ax.YLim;结束函数set.YLimitsMode(obj,ylmmode) ax = getAxes(obj);斧子。YLimMode = ylmmode;结束函数ylm = get.YLimitsMode(obj) ax = getAxes(obj);ylm = ax.YLimMode;结束结束结束
在保存BarErrorBarChart.m
,创建图表的实例。
BarErrorBarChart (“XData”,[1 2 3 4],“YData”,[11 22 31 41],“EData”,[2 2 2]);
的方法指定标题标题
函数。然后放大最后三个小节,调用xlim
函数。
标题(“三大因素”) xlim (1.5 [5])