主要内容

使用平行坐标图探索表数据

这个例子展示了如何将一个文件导入到MATLAB®作为一个表格,从表格数据创建一个平行坐标图,并修改图的外观。

平行坐标图对于显示具有多列的表格或矩阵数据很有用。输入数据的行对应于绘图中的线,输入数据的列对应于绘图中的坐标。您可以对图中的线进行分组,以便更好地查看数据中的趋势。

导入文件为表

加载示例文件TemperatureData.csv,它包含了从2015年1月到2016年7月的平均日温度。将文件读入表中,并显示前几行。

台= readtable (“TemperatureData.csv”);头(台)
ans =8×4表Year Month Day TemperatureF ____ ___________ ___ ____________ 2015 {'January'} 1 23 2015 {'January'} 2 31 2015 {'January'} 3 25 2015 {'January'} 4 39 2015 {'January'} 5 29 2015 {'January'} 6 12 2015 {'January'} 7 10 2015 {'January'} 8 4 . 2015 {'January'} 8 8 . 2015 {'January'} 8 8 . 2015 {'January'} 8 8 . 2015 {'January'} 8 8 . 2015 {'January'} 8 8 . 2015 {'January'} 8 8 . 2015

创建基本平行坐标图

从表的前几行创建一个平行坐标图。图中的每一行都对应于表中的一行。默认情况下,parallelplot显示表中的所有坐标变量,顺序与它们在表中出现的顺序相同。该软件将坐标变量名显示在其相应的坐标标尺下方。

从图中可以看出,表格的前8行提供了2015年1月前8天的温度数据。例如,平均来说,第八天是八天中最冷的。

parallelplot(头(台)

图包含一个类型为parallelplot的对象。

为了帮助您解释绘图,MATLAB在默认情况下随机抖动绘图线,以便它们不太可能沿着坐标标尺完全重叠。例如,尽管前八个观察结果是一样的一年值时,情节线不与2015在上面打勾一年坐标尺或1月在上面打勾协调的统治者。尽管抖动影响所有坐标变量,但它通常在分类坐标标尺上更明显,因为它依赖于标记之间的距离。你可以通过设置抖动财产。

注意到一些标记一年坐标尺是无意义的十进制值。要确保坐标标尺上的标记只对应有意义的值,可以使用分类函数。

资源描述。一年= categorical(tbl.Year);

现在从整个表创建一个平行坐标图。分配ParallelCoordinatesPlot对象转换为变量p,并使用p来修改创建后的图。例如,使用标题财产。

p = parallelplot(台)
p = ParallelCoordinatesPlot with properties: SourceTable: [565x4 table] coordinatevvariables: {'Year' '' Month' 'Day' 'TemperatureF'} GroupVariable: "显示所有属性
p.Title =的温度数据

图包含一个类型为parallelplot的对象。平行线图的图表上有温度数据的标题。

组织情节

把情节中的线按照一年值,通过设置GroupVariable财产。默认情况下,MATLAB将图例添加到绘图中。您可以通过设置LegendVisible财产“关闭”

p.GroupVariable =“年”

图包含一个类型为parallelplot的对象。平行线图的图表上有温度数据的标题。

交互式地重新排列坐标变量

交互式地重新安排坐标变量,以便更容易地比较它们,并决定在情节中保留哪些变量。

在图形窗口中打开绘图。单击坐标标记并将关联的坐标标尺拖动到所选位置。软件在黑色矩形中勾勒出选定的坐标标尺。例如,您可以单击坐标标记并将坐标标尺拖动到右侧。你可以很容易地进行比较TemperatureF值。

当您交互地重新排列坐标变量时,软件会更新相关的变量CoordinateTickLabelsCoordinateVariables,CoordinateData图的属性。

有关更多交互性选项,请参见提示

选择坐标变量子集

中坐标变量的子集p.SourceTable在情节中指定它们的顺序CoordinateVariables的属性p

特别是,删除一天变量,并显示TemperatureF变量,它位于源表的第四列,作为绘图中的第二个坐标。

p. coordinatevvariables = [1 4 2];

图包含一个类型为parallelplot的对象。平行线图的图表上有温度数据的标题。

或者,您可以设置CoordinateVariables属性,方法是使用包含变量名的字符串或单元格数组或逻辑向量真正的元素的选定变量。

在坐标变量中修改类别

中显示类别的子集并沿绘图中的坐标标尺改变类别顺序。

因为有些月份只有两年中的一年的数据,所以删除源表中与这些唯一月份相对应的行。当您更改源表时,MATLAB会立即更新图。

uniqueMonth = {“9”“十月”11月的12月的“八月”};uniqueMonthIdx = ismember (p.SourceTable.Month uniqueMonth);p.SourceTable (uniqueMonthIdx:) = [];

图包含一个类型为parallelplot的对象。平行线图的图表上有温度数据的标题。

按时间顺序排列月份通过更新源表来协调标尺。

categoricalMonth =分类(p.SourceTable.Month);里newOrder = {“1月”“2”“3”“4”“可能”“6月”“7”};orderMonth = reordercats (categoricalMonth里newOrder);p.SourceTable.Month = orderMonth;

图包含一个类型为parallelplot的对象。平行线图的图表上有温度数据的标题。

使用分类值分组Plot Lines

为了更好地可视化每个月的温度范围,使用离散化并使用装箱值对图中的行进行分组。检查源表中的最低和最高温度。设置箱子边,使它们包含这些值。

分钟(p.SourceTable.TemperatureF)
ans = 3
马克斯(p.SourceTable.TemperatureF)
ans = 80
binEdges = [-3 10:10:80];垃圾箱= {00年代+ / -十年代的20年代的30年代的40年代的50年代的60年代的70年代+};groupTemperature =离散化(p.SourceTable.TemperatureF,...binEdges,“分类”箱);

将binned温度添加到源表中。根据分类的温度数据,将图中的线分组。

p.SourceTable.GroupTemperature = groupTemperature;p.GroupVariable =“GroupTemperature”

图包含一个类型为parallelplot的对象。平行线图的图表上有温度数据的标题。

因为GroupTemperature包括七个以上的类别,其中一些组在情节中有相同的颜色。为每一组指定不同的颜色颜色财产。

p.Color =喷气(8);

图包含一个类型为parallelplot的对象。平行线图的图表上有温度数据的标题。

另请参阅

功能

属性