Этот пример показывает, как импортировать файл в 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);
categorical
| discretize
| parallelplot
| readtable
| reordercats
| table