Исследуйте табличные данные Используя параллельный график координат

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

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

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

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

tbl = readtable(fullfile(matlabroot,'examples','graphics','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))
ans = 
  ParallelCoordinatesPlot with properties:

            SourceTable: [8×4 table]
    CoordinateVariables: {'Year'  'Month'  'Day'  'TemperatureF'}
          GroupVariable: ''

  Show all properties

Для улучшенного interpretability MATLAB случайным образом дрожит сюжетные линии по умолчанию так, чтобы они вряд ли наложились отлично вдоль координатных линеек. Например, несмотря на то, что первые восемь наблюдений имеют тот же Year и значения Month, сюжетные линии не являются сбросом с отметкой деления 2015 вдоль координаты Year, линейка или отметка деления January вдоль Month координируют линейку. Несмотря на то, что дрожание влияет на все координатные переменные, это часто более примечательно вдоль категориальных координатных линеек, потому что это зависит от расстояния между отметками деления. Можно управлять объемом дрожания в графике путем установки свойства Jitter.

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

tbl.Year = categorical(tbl.Year);

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

p = parallelplot(tbl)
p.Title = 'Temperature Data';
p = 
  ParallelCoordinatesPlot with properties:

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

  Show all properties

Измените координатные переменные

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

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

p.CoordinateVariables = [1 4 2];

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

Сюжетные линии группы

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

p.GroupVariable = 'Year';

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

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

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

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

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

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

Сюжетные линии группы Используя сгруппированные значения

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

minTemp = min(p.SourceTable.TemperatureF)
maxTemp = max(p.SourceTable.TemperatureF)
minTemp =

    -3


maxTemp =

    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';

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

p.Color = jet(8);

Смотрите также

Функции

Свойства