首页 > 编程笔记 > MATLAB笔记 阅读:7

MATLAB parallelplot()绘制平行坐标图(附带实例)

在 MATLAB 中,利用函数 parallelplot() 可以创建平行坐标图,其调用格式如下:
parallelplot(tbl) % 根据表 tbl 创建一个平行坐标图。默认绘制所有表列
                  % 图中的每个线条代表表中的一行,图中的每个坐标变量对应表中的一列
parallelplot(tbl,'CoordinateVariables',coordvars) % 根据表 tbl 中的 coordvars 变量创建一个平行坐标图
parallelplot(__,'GroupVariable',grpvar) % 使用 grpvar 指定的表变量对图中的线条进行分组
parallelplot(data) % 根据数值矩阵 data 创建一个平行坐标图
parallelplot(data,'CoordinateData',coorddata) % 根据矩阵 data 中的 coorddata 列创建一个平行坐标图
parallelplot(__,'GroupData',grpdata) % 使用 grpdata 中的数据对图中的线条进行分组

【实例】使用分 bin 数据创建平行坐标图。在编辑器中编写以下程序并运行:
load patients                     % 加载 patients 数据集
X = [Age Height Weight];          % 根据 Age、Height 和 Weight 值创建一个矩阵
p = parallelplot(X);              % 使用矩阵数据创建一个平行坐标图
p.CoordinateTickLabels = {'Age(years)','Height(inches)',...
                          'Weight(pounds)'};
min(Height)                       % 获取最小值,输出略
max(Height)                       % 获取最大值,输出略
binEdges = [60 64 68 72];
bins = {'short','average','tall'}; % 创建一个新分类变量,将每个患者分别归入 short、average 或 tall
groupHeight = discretize(Height,binEdges,'categorical',bins);
p.GroupData = groupHeight;        % 使用 groupHeight 值对平行坐标图中的线条分组
运行程序后,输出如下图所示的图形:


图 1 平行坐标图(1)

【实例 2】对图中代表类别的坐标变量重新排序。在编辑器中编写以下程序并运行:
outages = readtable('outages.csv');      % 将数据以表形式读入工作区中
coordvars = [1 3 4 6];                   % 选中表中的列构成子集
p = parallelplot(outages,'CoordinateVariables',coordvars,...
                 'GroupVariable','Cause');  % 创建平行坐标图,根据导致停电的事件对线条分组
运行程序后,输出如下图所示图形:


图 2 平行坐标图(2)

继续在编辑器中编写以下程序并运行:
categoricalCause = categorical(p.SourceTable.Cause);   % 将 Cause 转换为分类变量
newOrder = {'attack','earthquake','energy emergency',...
            'equipment fault','fire','severe storm',...
            'thunder storm','wind','winter storm','unknown'};  % 指定事件的新顺序
orderCause = reordercats(categoricalCause,newOrder);   % 创建新变量
p.SourceTable.Cause = orderCause;                      % 在绘图源表中用新变量替换 Cause 变量
运行程序后,输出如下图所示图形:


图 3 更改Cause中事件的顺序得到的平行坐标图

继续在编辑器中编写以下程序并运行:
p.Color = parula(10);   % 通过更改 p 的 Color 属性,为每个组分配不同的颜色
运行程序后,输出如下图所示图形:


图 4 为每个组分配不同的颜色得到的平行坐标图

相关文章