То В этом примере показано, как импортировать файл в 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: [8x4 table] CoordinateVariables: {'Year' 'Month' 'Day' 'TemperatureF'} GroupVariable: '' Show all properties
Чтобы помочь вам интерпретировать график, 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