主要内容

用于显示可变大小平铺图的图表类

这个例子展示了如何定义一个类来创建可以是任意大小的平铺图,这取决于用户数据的大小。这个图表有一个公众数据属性,该属性接受m × n矩阵。该图表显示了n × n平方的散点图和直方图。散点图显示了数据的不同列之间的对比。直方图显示了数据的每一列中值的分布。

更新方法将重新创建直方图和散点图,以反映数据的变化。如果布局的网格大小与数据的大小冲突,则删除所有轴并删除GridSize属性将更新为与数据大小匹配。然后创建一组新的轴对象。

要定义类,请将以下代码复制到编辑器中,并将其与名称一起保存TrellisChart.m在可写文件夹中。

classdefTrellisChart < matlab.graphics.chartcontainer.ChartContainer属性数据(::) {mustBeNumeric}ColNames(: 1)字符串TitleText(: 1)字符串结束方法(访问=受保护)函数设置(obj)为所有轴使用一个工具栏axtoolbar (getLayout (obj),“默认”);结束函数更新(obj)获取布局并将其存储为tcltcl = getLayout(obj);numvars = size(obj.Data,2);如果需要重新配置布局如果numvars ~= tcl.GridSize(1)删除布局内容以更改网格大小删除(tcl.Children);如果tcl numvars > 0。GridSize= [numvars numvars];I = 1:numvars^2 nexttile(tcl, I);结束结束结束用坐标轴填充布局Ax = gobjects(numvars,numvars);Col = 1:numvars行= 1:numvars获取当前行/列上的轴T = col +(行-1)* numvars;斧子(行,坳)= nexttile (tcl, t);如果坳= =行在对角线上绘制直方图直方图(ax(行,上校),obj.Data(:,上校));坳ylabel (ax(行),“数”其他的%对角线外,画散点散射(ax(行,上校),obj.Data(:,上校),...obj.Data(:,行),“填充”“MarkerFaceAlpha”, 0.6)如果length(obj.ColNames) >= row ylabel(ax(row,col),obj.ColNames(row));结束结束如果length(obj.ColNames) >= col xlabel(ax(row,col),obj.ColNames(col));结束结束链接每一列的x轴,以便平移或缩放%影响列中的所有轴。linkaxes (ax(:,上校),“x”结束%图表标题标题(tcl, obj。TitleText,“字形大小”16);结束结束结束

保存类文件后,创建图表的实例。

负载病人chartTitle =身高,体重和舒张压;c = TrellisChart(“数据”,[身高体重舒张压],...“colNames”, (“高度”“重量”“舒张期”],...“TitleText”, chartTitle);

另请参阅

功能

属性

相关的话题