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