exponenta event banner

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

В этом примере показано, как импортировать файл в 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.

См. также

Функции

Свойства