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

Чтобы облегчить интерпретацию графика, 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';

Группировать линии на графике в соответствии с Year путем установки значения GroupVariable собственность. По умолчанию MATLAB добавляет легенду на график. Можно удалить легенду, установив LegendVisible свойство для 'off'.
p.GroupVariable = 'Year';
Измените порядок координатных переменных в интерактивном режиме, чтобы легче сравнивать их и решить, какие переменные сохранить на графике.
Откройте график в окне рисунка. Щелкните метку засечки координат и перетащите связанную линейку координат в нужное место. Программа отображает выбранную координатную линейку в черном прямоугольнике. Например, можно щелкнуть значок Month и перетащите координатную линейку вправо. Затем можно легко сравнить Month и TemperatureF значения.

При интерактивной перестройке координатных переменных программа обновляет связанные CoordinateTickLabels, CoordinateVariables, и CoordinateData свойства графика.
Дополнительные параметры интерактивности см. в разделе Советы.
Отображение подмножества координатных переменных в p.SourceTable и укажите их порядок на графике, установив CoordinateVariables имущество p.
В частности, удалить Day переменная из графика и отображение TemperatureF переменная, которая находится в четвертом столбце исходной таблицы, в качестве второй координаты на графике.
p.CoordinateVariables = [1 4 2];

Кроме того, можно задать CoordinateVariables используя строку или массив ячеек с именами переменных или логический вектор с true элементы для выбранных переменных.
Отображение подмножества категорий в 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 и сгруппировать линии на графике с использованием привязанных значений. Проверьте минимальную и максимальную температуры в исходной таблице. Установите края ячейки таким образом, чтобы они включали эти значения.
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';
Поскольку GroupTemperature включает более семи категорий, некоторые из групп имеют одинаковый цвет на графике. Назначьте различные цвета каждой группе, установив Color собственность.
p.Color = jet(8);

categorical | discretize | parallelplot | readtable | reordercats | table