图表功能如情节
,散射
, 和酒吧
通过对颜色和线条样式等方面的基本控制,使您能够快速可视化数据。要创建自定义图表,可以组合多个图形对象、设置这些对象的属性或调用其他函数。在R2019a和更早的版本中,存储定制代码并与他人共享的常见方法是编写脚本或函数。
从R2019b开始,可以通过定义的子类来创建图表的类实现海图容器
基类。创建类使您能够:
为用户提供方便的界面——当用户想要自定义图表的某个方面时,他们可以设置属性,而不必修改并重新运行图形代码。用户可以在命令行修改属性或在属性检查器中检查它们。
封装算法和原始图形对象 - 您可以实现执行计算和管理底层图形对象的方法。以这种方式组织代码允许您隐藏用户的实现详细信息。
当您定义从此基类派生的图表时,图表的实例是图形对象层次结构的成员。因此,您的图表与图形系统的许多方面兼容。例如,gca
和findobj.
函数可以返回图表的实例。
图表类的第一行指定了matlab.graphics.chartcontainer.ChartContainer
类作为超类。例如,称为课程的第一行ConfidenceChart
看起来像这样:
classdef信心图
除了指定超类之外,在类定义中还要包括以下组件。
您不必为类编写构造函数方法,因为构造函数继承了海图容器
基类。构造函数接受可选的输入参数:父容器和任意数量的名称-值对参数,用于设置图表上的属性。例如,如果你定义了一个叫做ConfidenceChart
具有公共属性扩展属性
和伊达塔
,可以使用以下任一命令创建类的实例:
C = ConfidenceChart(GCF,“扩展数据”(1 2 3),“YData”,[4 5 6])c=信心图(“扩展数据”(1 2 3),“YData”(4 5 6))
如果希望提供一个接口,该接口以与典型函数相同的方式接受输入参数,则可以定义自定义构造函数方法。看见编写图表类的构造函数为更多的信息。
将你的类属性至少划分为两个块:
用于存储面向用户界面组件的公共块
用于存储要隐藏的实现细节的私有块
公共块中的属性存储用户提供的输入值。例如,显示直线的图表可能存储x- 和Y-两个公共属性中的坐标向量。由于属性名-值对参数是隐式构造函数方法的可选输入,因此推荐的方法是将公共属性初始化为默认值。如果定义存储坐标值的公共特性,请将其初始化为楠
如果用户在没有任何输入的情况下调用构造函数,则值或空数组将构造空图表。
除了要存储的任何计算值外,专用块中的特性还存储构成图表的基础图形对象。最终,您的类将使用公共属性中的数据来配置底层对象。包括转瞬即逝的
和不可复制
属性,如果用户复制或保存图表实例,则避免存储冗余信息。
例如,这里是显示一个图表的属性块线
对象和A.补丁
对象。公共属性块存储用户可以控制的值x- 和Y线的坐标、置信距值、标记符号和颜色值。私人财产块储存线
和补丁
对象。
特性XData = NaN YData = NaN confencmargin = 0.15 marksymbol ='o'Color = [1 0 0]结束特性(访问=私有,瞬态,不可凝固)LineObject PatchObject结束
这个设置
方法在MATLAB构造图表对象时执行一次。任何作为名称-值对参数传递给构造函数方法的属性值都将在该方法执行后赋值。
使用设置
方法:
调用绘图函数来创建要在图表中使用的基本图形对象。
将打印函数返回的基本体对象作为私有属性存储在图表对象上。
配置基本图形对象。
配置轴。
许多图形函数都有用于指定目标轴对象的可选输入参数。这些功能包括打印功能(例如情节
,散射
, 和酒吧
)修改轴的功能(例如持有
,网格
, 和标题
)。从类方法中调用这些类型的函数时,必须指定目标轴对象。您可以通过调用轴对象来访问轴对象getAxes
方法。此方法返回轴对象,或者如果图表尚未包含轴对象,则会创建笛卡尔轴对象。
谨慎
调用绘图函数或修改轴的函数,而无需指定目标轴可能会产生意外结果。
当您调用绘图功能时设置
方法,指定临时值(例如楠
)对于坐标数据。此外,还指定对应于类的公共属性的其他参数的临时值。这样做避免在两个中设置相同的属性值设置
和更新
方法。
如果要在轴中显示多个基本体对象,请调用持有
绘图命令之间的功能。将保持状态设置为“关闭”
在您最后一次绘图命令之后。
例如,考虑显示一行和修补程序的图表。它有这些属性:
两个公共属性被称为扩展属性
和伊达塔
用于存储的x- 和Y- 这条线路
两个私有属性被称为lineobject.
和patchObject.
这个设置
方法通过调用getAxes
方法。然后它打电话给补丁
函数并将输出存储在patchObject.
财产。下一行代码设置了轴的保持状态“开”
打电话之前情节
函数创建lineobject.
财产。最后一行代码将坐标轴保持状态设置为“关闭”
.
功能设置(obj)%拿斧子ax=getAxes(obj);%创建补丁和行对象obj.patchobject = patch(ax,nan,nan,“r”,“FaceAlpha”,0.2,...“EdgeColor”,“没有”);(ax,“开”)obj.lineObject =绘图(AX,NaN,NaN);%关闭保持状态(ax,“关闭”)结束
当用户更改图表对象上的一个或多个属性值时,MATLAB会标记图表对象以进行更新。这个更新
方法在设置
方法运行。然后下次再运行drawnow
执行。这个drawnow
函数会根据用户MATLAB会话中图形环境的状态定期自动执行。因此,在更改属性值和查看这些更改的结果之间可能存在延迟。
使用更新
方法,以根据公共属性的新值重新配置图表中的基础图形对象。通常,此方法不区分哪些公共属性发生了更改。它重新配置依赖于公共属性的底层图形对象的所有方面。
例如,考虑具有这些属性的图表:
两个公共属性被称为扩展属性
和颜色
两个私有属性被称为lineobject.
和patchObject.
这个更新
方法的更新扩展属性
和颜色
特性线
和补丁
对象。
功能更新(obj)%更新线对象的扩展数据obj.LineObject.XData=obj.XData;%更新补丁XDatax = obj.XData;obj.PatchObject.XData = [x x(end:-1:1)];%更新线条对象颜色obj.LineObject.Color = obj.Color;obj.PatchObject.FaceColor = obj.Color;结束
这个例子展示了如何创建一个图表来绘制具有置信界限的线。创建一个名为ConcidenceChart.m.
在MATLAB路径上的文件夹中。按照以下步骤定义类。
步 | 实现 |
---|---|
源于 |
classdef信心图 |
定义公共属性。 |
特性XData = NaN YData = NaN confencmargin = 0.15 marksymbol ='o'Color = [1 0 0]结束 |
定义私有属性。 |
特性(访问=私有,瞬态,不可凝固)LineObject PatchObject结束 |
实施 将坐标轴的保持状态转回 |
方法(访问=受保护)功能设置(obj)%拿斧子ax=getAxes(obj);%创建补丁和行对象obj.patchobject = patch(ax,nan,nan,“r”,“FaceAlpha”,0.2,...“EdgeColor”,“没有”);(ax,“开”)obj.lineObject =绘图(AX,NaN,NaN);%关闭保持状态(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.confidencemmargin;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;结束结束结束 |
接下来,通过调用具有少数公共属性的隐式构造函数方法创建图表的实例:
x = 0:0.2:10;y = besselj(0,x);c = concidenceChart(“扩展数据”,X,“YData”,y,“信心保证金”,0.15);
改变颜色。
C.Color = [0 0 1];
提示
除了文档中提供的示例之外,您还可以找到各种社区撰写的示例文件交换在Matlab Central™.
默认情况下,图表的实例支持所有Matlab图表的大部分功能。金宝app例如,gca
和findobj.
函数可以返回图表的实例。您还可以将图表实例传递给设置
和得到
函数,您可以在属性检查器中配置图表的属性。
只有在您的图表中启用此表中描述的功能时,才会支持它们。金宝app
特征 | 描述 | 更多信息 |
---|---|---|
传说 | 启用 |
matlab.graphics.chartcontainer.mixin.Legend |
彩色栏 | 启用 |
matlab.graphics.chartcontainer.mixin.Colorbar |
不同类型的轴,或多个轴 | 显示一个或多个笛卡尔图、极坐标图或地理图。 |
用极轴、地理轴或多轴绘制图表 |
功能 | 启用在轴上设置属性的功能,例如 |
启用设置轴属性的方便功能 |
保存和加载 | 用户与图表交互后存储更改,以便它们可以保存图表并在将其加载到Matlab中时恢复其状态。 |
保存和加载图表类的实例 |