Исследуйте данные таблицы с помощью параллельного графика координат

В этом примере показано, как импортировать файл в MATLAB ® как таблицу, создать параллельный график координат из табличных данных и изменить внешний вид графика.

Параллельные графики координат полезны для визуализации табличных или матричных данных с несколькими столбцами. Строки входных данных соответствуют линиям на графике, а столбцы входных данных соответствуют координатам на графике. Можно сгруппировать линии на графике, чтобы лучше увидеть тренды в данных.

Импорт файла как таблицы

Загрузите образец файла TemperatureData.csv, которая содержит среднесуточные температуры с января 2015 года по июль 2016 года. Прочтите файл в таблицу и отобразите первые несколько строк.

tbl = readtable('TemperatureData.csv');
head(tbl)
ans=8×4 table
    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     

Построение графика основных параллельных координат

Создать график параллельных координат из первых нескольких строк таблицы. Каждая линия графика соответствует одной строке в таблице. По умолчанию parallelplot отображает все переменные координат в таблице в том же порядке, в котором они отображаются в таблице. Программа отображает имена переменных координат под соответствующими линейками координат.

График показывает, что первые восемь строк таблицы дают данные о температуре за первые восемь дней в январе 2015 года. Для примера восьмой день был самым холодным из восьми дней, на среднее значение.

parallelplot(head(tbl))

Figure contains an object of type parallelplot.

Чтобы помочь вам интерпретировать график, MATLAB случайным образом джиттеры строят линии по умолчанию так, что они вряд ли перекроются идеально вдоль координатных линейки. Например, хотя первые восемь наблюдений имеют одинаковые Year и Month значения, линии графика не заподлицо со 2015 Отметка деления вдоль Year линейка координат или January Отметка деления вдоль Month линейка координат. Хотя джиттеринг влияний всеми переменными координат, часто он более заметен вдоль категориальной координаты линеек потому что он зависит от расстояния между отметками деления. Вы можете контролировать количество джиттеринга на графике, установив Jitter свойство.

Заметьте, что некоторые отметки деления вдоль Year линейки координат являются бессмысленными десятичными значениями. Чтобы убедиться, что отметки деления вдоль координатной линейки соответствуют только значимым значениям, преобразуйте переменную в категориальную переменную с помощью categorical функция.

tbl.Year = categorical(tbl.Year);

Теперь создайте график параллельных координат из всей таблицы. Назначьте ParallelCoordinatesPlot объект переменной p, и использовать p для изменения графика после создания графика. Например, добавить заголовок к графику можно используя команду Title свойство.

p = parallelplot(tbl)
p = 
  ParallelCoordinatesPlot with properties:

            SourceTable: [565x4 table]
    CoordinateVariables: {'Year'  'Month'  'Day'  'TemperatureF'}
          GroupVariable: ''

  Show all properties

p.Title = 'Temperature Data';

Figure contains an object of type parallelplot.

Figure contains an object of type parallelplot. The chart of type parallelplot has title Temperature Data.

Группирование линий графика

Сгруппировать линии на графике согласно Year значения путем установки GroupVariable свойство. По умолчанию MATLAB добавляет легенду к графику. Вы можете удалить легенду, установив LegendVisible свойство к 'off'.

p.GroupVariable = 'Year';

Figure contains an object of type parallelplot. The chart of type parallelplot has title Temperature Data.

Переставьте переменные координат в интерактивном режиме

Переставьте переменные координат в интерактивном режиме, чтобы сравнить их легче и решить, какие переменные сохранить в графике.

Откройте график в окне рисунка. Щелкните метку такта и перетащите связанную линейку координат в выбранное место. Программа очерчивает выбранную линейку координат в черном прямоугольнике. Для примера можно кликнуть Month такт координат и перетаскивание линейки координат вправо. Затем можно легко сравнить Month и TemperatureF значения.

Когда вы переставляете переменные координат в интерактивном режиме, программное обеспечение обновляет связанную CoordinateTickLabels, CoordinateVariables, и CoordinateData свойства графика.

Для получения дополнительных опций интерактивности см. «Советы».

Выберите подмножество переменных координат

Отобразите подмножество переменных координат в p.SourceTable и укажите их порядок на графике путем установки CoordinateVariables свойство p.

В частности, удалите Day переменная из графика и отобразить TemperatureF переменная, которая находится в четвертом столбце исходной таблицы, как вторая координата на графике.

p.CoordinateVariables = [1 4 2];

Figure contains an object of type parallelplot. The chart of type parallelplot has title Temperature Data.

Также можно задать CoordinateVariables свойство при помощи строки или массива ячеек с именами переменных или логического вектора с true элементы для выбранных переменных.

Изменение категорий в переменной координат

Отображение подмножества категорий в Month и измените порядок категорий вдоль координатной линейки на графике.

Поскольку некоторые месяцы имеют данные только за один из двух лет, удалите строки в исходной таблице, соответствующие этим уникальным месяцам. MATLAB обновляет график, как только вы меняете исходную таблицу.

uniqueMonth = {'September','October','November','December','August'};
uniqueMonthIdx = ismember(p.SourceTable.Month,uniqueMonth);
p.SourceTable(uniqueMonthIdx,:) = [];

Figure contains an object of type parallelplot. The chart of type parallelplot has title Temperature Data.

Организуйте месяцы в хронологическом порядке по Month линейка координат путем обновления исходной таблицы.

categoricalMonth = categorical(p.SourceTable.Month);
newOrder = {'January','February','March','April','May','June','July'};
orderMonth = reordercats(categoricalMonth,newOrder);
p.SourceTable.Month = orderMonth;

Figure contains an object of type parallelplot. The chart of type parallelplot has title Temperature Data.

Группирование графика Линий с использованием привязанных значений

Чтобы лучше визуализировать область значений температур в течение каждого месяца, сохраните данные о температуре при помощи discretize и сгруппировать линии на графике, используя привязанные значения. Проверьте минимальную и максимальную температуру в исходной таблице. Установите границы интервала так, чтобы они включали эти значения.

min(p.SourceTable.TemperatureF)
ans = -3
max(p.SourceTable.TemperatureF)
ans = 80
binEdges = [-3 10:10:80];
bins = {'00s+/-','10s','20s','30s','40s','50s','60s','70s+'};
groupTemperature = discretize(p.SourceTable.TemperatureF,binEdges,'categorical',bins);

Добавьте привязанные температуры в исходную таблицу. Сгруппировать линии на графике согласно привязанным данным о температуре.

p.SourceTable.GroupTemperature = groupTemperature;
p.GroupVariable = 'GroupTemperature';

Figure contains an object of type parallelplot. The chart of type parallelplot has title Temperature Data.

Потому что GroupTemperature включает более семи категорий, некоторые группы имеют одинаковый цвет на графике. Назначьте различные цвета каждой группе путем установки Color свойство.

p.Color = jet(8);

Figure contains an object of type parallelplot. The chart of type parallelplot has title Temperature Data.

См. также

Функции

Свойства