parallelplot

Создайте параллельный график координат

Синтаксис

p = parallelplot(tbl)
p = parallelplot(tbl,'CoordinateVariables',coordvars)
p = parallelplot(___,'GroupVariable',grpvar)
p = parallelplot(data)
p = parallelplot(data,'CoordinateData',coorddata)
p = parallelplot(___,'GroupData',grpdata)
p = parallelplot(___,Name,Value)
p = parallelplot(parent,___)

Описание

пример

p = parallelplot(tbl) создает параллель, координирует график из таблицы tbl и возвращает объект ParallelCoordinatesPlot. Каждая строка в графике представляет строку в таблице, и каждая координатная переменная в графике соответствует столбцу в таблице. Программное обеспечение строит все столбцы таблицы по умолчанию.

Используйте p, чтобы изменить объект после того, как вы создадите его. Для списка свойств смотрите ParallelCoordinatesPlot Properties.

пример

p = parallelplot(tbl,'CoordinateVariables',coordvars) создает график координат параллели из переменных coordvars в таблице tbl.

пример

p = parallelplot(___,'GroupVariable',grpvar) использует табличную переменную, заданную grpvar, чтобы сгруппировать строки в графике. Задайте эту опцию после любой из комбинаций входных аргументов в предыдущих синтаксисах.

пример

p = parallelplot(data) создает график координат параллели из числового матричного data.

пример

p = parallelplot(data,'CoordinateData',coorddata) создает график координат параллели из столбцов coorddata в матричном data.

пример

p = parallelplot(___,'GroupData',grpdata) использует данные в grpdata, чтобы сгруппировать строки в графике. Задайте эту опцию после любой из предыдущих комбинаций входных аргументов для числовых матричных данных.

пример

p = parallelplot(___,Name,Value) задает дополнительные опции с помощью одного или нескольких аргументов пары "имя-значение". Например, можно задать метод нормализации данных для координат с числовыми значениями. Для списка свойств смотрите ParallelCoordinatesPlot Properties.

p = parallelplot(parent,___) создает параллельный график координат в фигуре, панели или вкладке, заданной parent.

Примеры

свернуть все

Создайте график координат параллели из таблицы медицинских данных о пациентах.

Загрузите набор данных patients и составьте таблицу от подмножества переменных, загруженных в рабочую область. Создайте график координат параллели с помощью таблицы. Строки в графике соответствуют отдельным пациентам. Используйте график наблюдать тренды в данных. Например, график показывает, что курильщики склонны иметь более высокие значения кровяного давления (и диастолический и систолический).

load patients
tbl = table(Diastolic,Smoker,Systolic);
p = parallelplot(tbl)

p = 
  ParallelCoordinatesPlot with properties:

            SourceTable: [100×3 table]
    CoordinateVariables: {'Diastolic'  'Smoker'  'Systolic'}
          GroupVariable: ''

  Show all properties

По умолчанию программное обеспечение случайным образом дрожит сюжетные линии так, чтобы они вряд ли наложились отлично вдоль координатных линеек. Это дрожание особенно полезно для визуализации категориальных данных, потому что это позволяет вам различать сюжетные линии более легко. Например, заметьте, что сюжетные линии вдоль Smoker координируют линейку; сюжетные линии не являются сбросом или с true или с отметками деления false.

Чтобы отключить дрожание по умолчанию, установите свойство Jitter на 0.

p.Jitter = 0;

Создайте график координат параллели из таблицы данных о цунами. Задайте табличные переменные, чтобы отобразиться и их порядок и сгруппировать строки в графике согласно одной из переменных.

Считайте данные о цунами в рабочую область как таблица.

tsunamis = readtable('tsunamis.xlsx');

Создайте график координат параллели с помощью подмножества переменных в таблице. Во-первых, увеличьте размер окна рисунка, чтобы предотвратить переполнение в графике. Затем чтобы задать переменные и их порядок, используйте аргумент пары "имя-значение" 'CoordinateVariables'. К случаям группы согласно их валидности, набор аргумент пары "имя-значение" 'GroupVariable' 'Validity'. Строки в графике соответствуют отдельным случаям цунами. График показывает, что большинство случаев в наборе данных, которые имеют значение Validity, рассматривается определенными цунами.

figure('Units','normalized','Position',[0.3 0.3 0.45 0.4])
coordvars = {'Year','Validity','Cause','Country'};
p = parallelplot(tsunamis,'CoordinateVariables',coordvars,'GroupVariable','Validity');

Создайте график координат параллели из матрицы, содержащей медицинские данные о пациентах. Интервал значения в одном из столбцов в матрице и группа строки в графике с помощью сгруппированных значений.

Загрузите набор данных patients и создайте матрицу из Age, Height и значений Weight. Создайте график координат параллели с помощью матричных данных. Маркируйте координатные переменные в графике. Строки в графике соответствуют отдельным пациентам.

load patients
X = [Age Height Weight];
p = parallelplot(X)
p = 
  ParallelCoordinatesPlot with properties:

              Data: [100×3 double]
    CoordinateData: [1 2 3]
         GroupData: []

  Show all properties

p.CoordinateTickLabels = {'Age (years)','Height (inches)','Weight (pounds)'};

Создайте новую категориальную переменную что группы каждый пациент в одну из трех категорий: short, average или tall. Установите ребра интервала, таким образом, что они включают минимальные и максимальные значения Height.

min(Height)
ans = 60
max(Height)
ans = 72
binEdges = [60 64 68 72];
bins = {'short','average','tall'};
groupHeight = discretize(Height,binEdges,'categorical',bins);

Теперь используйте значения groupHeight, чтобы сгруппировать строки в параллельном графике координат. График показывает, что пациенты short склонны взвешивать меньше, чем пациенты tall.

p.GroupData = groupHeight;

Создайте параллельные графики координат из матрицы, содержащей медицинские данные о пациентах. Для каждого графика задайте столбцы матрицы, чтобы отобразить, и сгруппировать строки в графике согласно отдельной переменной.

Загрузите набор данных patients и создайте матрицу из некоторых переменных, загруженных в рабочую область.

load patients
X = [Age Height Weight];

Создайте график координат параллели с помощью подмножества столбцов в матричном X. Чтобы задать столбцы и их порядок, используйте аргумент пары "имя-значение" 'CoordinateData'. Пациенты группы согласно их состоянию курильщика путем передачи значений Smoker аргументу пары "имя-значение" 'GroupData'. Строки в графике соответствуют отдельным пациентам. График показывает, что никакое ясное отношение не существует между состоянием курильщика и или возраст или вес.

coorddata = [1 3];
p = parallelplot(X,'CoordinateData',coorddata,'GroupData',Smoker)
p = 
  ParallelCoordinatesPlot with properties:

              Data: [100×3 double]
    CoordinateData: [1 3]
         GroupData: [100×1 logical]

  Show all properties

p.CoordinateTickLabels = {'Age','Weight'};

Создайте другой параллельный график координат с помощью различного подмножества столбцов в X. Сгруппируйте пациентов согласно их полу. График показывает, что мужчины более высоки и взвешивают больше, чем женщины.

coorddata2 = [2 3];
p2 = parallelplot(X,'CoordinateData',coorddata2,'GroupData',Gender)
p2 = 
  ParallelCoordinatesPlot with properties:

              Data: [100×3 double]
    CoordinateData: [2 3]
         GroupData: {100×1 cell}

  Show all properties

p2.CoordinateTickLabels = {'Height','Weight'};

Создайте график координат параллели из таблицы данных об отключении электроэнергии. Измените метод нормализации для числовых координатных переменных.

Считайте данные об отключении электроэнергии в рабочую область как таблица. Отобразите первые несколько строк таблицы.

outages = readtable('outages.csv');
head(outages)
ans=8×6 table
      Region          OutageTime        Loss     Customers     RestorationTime           Cause      
    ___________    ________________    ______    __________    ________________    _________________

    'SouthWest'    2002-02-01 12:18    458.98    1.8202e+06    2002-02-07 16:50    'winter storm'   
    'SouthEast'    2003-01-23 00:49    530.14    2.1204e+05                 NaT    'winter storm'   
    'SouthEast'    2003-02-07 21:15     289.4    1.4294e+05    2003-02-17 08:14    'winter storm'   
    'West'         2004-04-06 05:44    434.81    3.4037e+05    2004-04-06 06:10    'equipment fault'
    'MidWest'      2002-03-16 06:18    186.44    2.1275e+05    2002-03-18 23:23    'severe storm'   
    'West'         2003-06-18 02:49         0             0    2003-06-18 10:54    'attack'         
    'West'         2004-06-20 14:39    231.29           NaN    2004-06-20 19:16    'equipment fault'
    'West'         2002-06-06 19:28    311.86           NaN    2002-06-07 00:51    'equipment fault'

Создайте новую переменную под названием OutageDuration, который указывает сколько времени каждое продлившееся отключение электроэнергии. Преобразуйте OutageDuration в номер дней каждое продлившееся отключение электроэнергии. Добавьте новую переменную в таблицу outages и вызовите его OutageDays.

OutageDuration = outages.RestorationTime - outages.OutageTime;
outages.OutageDays = days(OutageDuration);

Создайте график координат параллели с помощью Loss, Customers и переменных OutageDays. Поскольку координатные переменные являются числовыми, отображают значения в графике как z-очки, без любого дрожания, с помощью аргументов пары "имя-значение" 'DataNormalization' и 'Jitter'.

coordvars = {'Loss','Customers','OutageDays'};
p = parallelplot(outages,'CoordinateVariables',coordvars,'DataNormalization','zscore','Jitter',0);

Переменная OutageDays содержит одно значение, которое является больше чем 30 стандартными отклонениями от среднего значение OutageDays и другое значение, которое является больше чем 10 стандартными отклонениями от среднего. Наведите на значения в графике отобразить всплывающие подсказки. Каждая всплывающая подсказка указывает на строку в таблице, соответствующей строке в графике.

Найдите строки в таблице outages, которые имеют идентифицированные экстремальные значения OutageDays. Заметьте, что значения RestorationTime для этих двух отключений электроэнергии подозрительны.

outliers = outages([1011 269],:)
outliers=2×7 table
      Region          OutageTime        Loss     Customers     RestorationTime           Cause           OutageDays
    ___________    ________________    ______    __________    ________________    __________________    __________

    'NorthEast'    2009-08-20 02:46       NaN    1.7355e+05    2042-09-18 23:31    'severe storm'           12083  
    'MidWest'      2008-02-07 06:18    2378.7             0    2019-08-14 16:16    'energy emergency'      4206.4  

Создайте график координат параллели. Переупорядочьте категории одной из координатных переменных.

Считайте данные на отключениях электроэнергии в рабочую область как таблица.

outages = readtable('outages.csv');

Создайте график координат параллели с помощью подмножества столбцов в таблице. Сгруппируйте строки в графике согласно событию, которое вызвало отключение электроэнергии.

coordvars = [1 3 4 6];
p = parallelplot(outages,'CoordinateVariables',coordvars,'GroupVariable','Cause');

Измените порядок событий в Cause путем обновления исходной таблицы. Во-первых, преобразуйте Cause в переменную categorical, задайте новый порядок событий и используйте функцию reordercats, чтобы создать новую переменную под названием orderCause. Затем замените исходную переменную Cause на новую переменную orderCause в исходной таблице графика.

categoricalCause = categorical(p.SourceTable.Cause);
newOrder = {'attack','earthquake','energy emergency','equipment fault', ...
    'fire','severe storm','thunder storm','wind','winter storm','unknown'};
orderCause = reordercats(categoricalCause,newOrder);
p.SourceTable.Cause = orderCause;

Поскольку переменная Cause содержит больше чем семь категорий, у некоторых групп есть то же самое, раскрашивают график. Присвойте разные цвета каждой группе путем изменения свойства Color p.

p.Color = parula(10);

Входные параметры

свернуть все

Таблица Source, заданная как таблица.

Можно составить таблицу от переменных рабочей области с помощью функции table, или можно импортировать данные как таблицу с помощью функции readtable.

Свойство SourceTable объектно-ориентированной памяти ParallelCoordinatesPlot исходная таблица.

Табличные переменные, чтобы отобразиться как координаты, заданные в одной из следующих форм:

  • Числовой вектор — Указание на индексы табличных переменных. Например, parallelplot(tbl,'CoordinateVariables',[1 5:7]) выбирает первые, пятые, шестые, и седьмые переменные в таблице, чтобы отобразиться как координаты.

  • Массив строк или массив ячеек из символьных векторов — Указание на имена табличных переменных. Например, parallelplot(tbl,'CoordinateVariables',{'Age','Weight','Height'}) выбирает переменные под названием 'Age', 'Weight' и 'Height', чтобы отобразиться как координаты.

  • Логический вектор — Содержащий элементы true для выбранных табличных переменных.

Свойство CoordinateVariables объектно-ориентированной памяти ParallelCoordinatesPlot значение coordvars. Свойство CoordinateTickLabels хранит имена выбранной переменной.

Табличная переменная для группировки данных, заданных в одной из следующих форм:

  • Вектор символов или скаляр строки — Указание на одно из имен табличной переменной

  • Числовой скаляр — Указание на индекс табличной переменной

  • Логический вектор — Содержащий один элемент true для табличной переменной

Значения, сопоставленные с вашей табличной переменной, должны сформировать числовой вектор, логический вектор, категориальный массив, массив строк или массив ячеек из символьных векторов.

grpvar разделяет строки в tbl в уникальные группы. По умолчанию программное обеспечение окрашивает связанные сюжетные линии согласно их значению группы. Сюжетные линии, соответствующие той же группе, имеют тот же цвет. Однако parallelplot присваивает максимум семи уникальных цветов группы. Когда общее количество групп превышает количество заданных цветов, циклов parallelplot через заданные цвета.

В легенде parallelplot отображает названия группы в порядке их первого выступления в свойстве GroupData ParallelCoordinatesPlot.

Пример: 'Smoker'

Пример 3

Входные данные, заданные как числовая матрица.

Свойство Data объектно-ориентированной памяти ParallelCoordinatesPlot значения data.

Столбцы матрицы, чтобы отобразиться как координаты, заданные в одной из следующих форм:

  • Числовой вектор — Указание на столбцы матрицы входных данных. Например, parallelplot(data,'CoordinateData',[1 5:7]) выбирает первые, пятые, шестые, и седьмые столбцы в data, чтобы отобразиться как координаты.

  • Логический вектор — Содержащий элементы true для выбранных столбцов матрицы входных данных.

Свойство CoordinateData объектно-ориентированной памяти ParallelCoordinatesPlot значение coorddata.

Значения для группировки матричных данных, заданных как числовой вектор, логический вектор, категориальный массив, массив строк или массив ячеек из символьных векторов.

grpdata разделяет строки в data в уникальные группы. По умолчанию программное обеспечение окрашивает связанные сюжетные линии согласно их значению группы. Сюжетные линии, соответствующие той же группе, имеют тот же цвет. Однако parallelplot присваивает максимум семи уникальных цветов группы. Когда общее количество групп превышает количество заданных цветов, циклов parallelplot через заданные цвета.

В легенде parallelplot отображает названия группы в порядке их первого выступления в свойстве GroupData ParallelCoordinatesPlot.

Пример: [1 2 1 3 2 1 3 3 2 3]

Пример: categorical({'blue','red','yellow','blue','yellow','red','red','yellow','blue','red'})

Родительский контейнер, в котором можно построить, заданный как Figure, Panel или объект Tab.

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: parallelplot(data,'GroupData',grpdata,'DataNormalization','zscore','Jitter',0) задает, чтобы сгруппировать числовые данные в data при помощи grpdata и отобразить данные как z-очки без любого дрожания.

Постройте заголовок, заданный как вектор символов, или представьте скаляр в виде строки. По умолчанию график не имеет никакого заголовка.

Пример: p = parallelplot(__,'Title','My Title Text')

Пример: p.Title = 'My Title Text'

Метод нормализации для координат с числовыми значениями, заданными как одна из следующих опций.

МетодОписание
'range'Отобразите необработанные данные вдоль координатных линеек, которые имеют независимые минимальные и максимальные пределы
'none'Отобразите необработанные данные вдоль координатных линеек, которые имеют те же минимальные и максимальные пределы
'zscore'Отобразите z-очки (со средним значением 0 и стандартным отклонением 1) вдоль каждой координатной линейки
'scale'Отобразите значения, масштабируемые стандартным отклонением вдоль каждой координатной линейки
'center'Отобразите данные, сосредоточенные, чтобы иметь среднее значение 0 вдоль каждой координатной линейки
'norm'Отобразите значения 2-нормы вдоль каждой координатной линейки

Для получения дополнительной информации об этих методах, смотрите normalize.

Для координатной переменной, которая является логическим вектором, массивом datetime, массивом длительности, категориальным массивом, массивом строк или массивом ячеек из символьных векторов, parallelplot равномерно распределяет уникальные возможные значения вдоль координатной линейки, независимо от метода нормализации.

Пример: p = parallelplot(__,'DataNormalization','none')

Пример: p.DataNormalization = 'zscore'

Расстояние смещения данных вдоль координатных линеек, заданных в виде числа в интервале [0,1]. Значение Jitter определяет максимальное расстояние, чтобы переместить сюжетные линии от их истинного значения вдоль координатных линеек, где смещение является универсальной случайной суммой. Если вы устанавливаете свойство Jitter на 1, то смежные области дрожания только затрагивают. Установите свойство Jitter на 0 отображать истинные значения данных.

Некоторая сумма дрожания особенно полезна для визуализации категориальных данных, потому что дрожание позволяет вам различать сюжетные линии более легко. Однако значение Jitter влияет на все координатные переменные, включая числовые переменные.

Пример: p = parallelplot(__,'Jitter',0.5)

Пример: p.Jitter = 0.2

Цвет группы, заданный в одной из следующих форм:

  • Вектор символов, определяющий название цвета, краткое название или шестнадцатеричный цветовой код. Шестнадцатеричный цветовой код запускается с символа хеша (#) и сопровождается тремя или шестью шестнадцатеричными цифрами, которые могут колебаться от 0 до F. Значения не являются чувствительными к регистру. Таким образом цветовые коды '#FF8800', '#ff8800', '#F80' и '#f80' эквивалентны.

  • Массив строк или массив ячеек из символьных векторов, определяющий одно или несколько названий цвета, кратких названий или шестнадцатеричных цветовых кодов.

  • Матрица с тремя столбцами значений RGB в области значений [0,1]. Эти три столбца представляют значение R, G значение и значение B.

Выберите среди этих предопределенных цветов, их эквивалентных триплетов RGB и их шестнадцатеричных цветовых кодов.

Название цветаКраткое названиеТриплет RGBШестнадцатеричный цветовой кодВнешний вид
'red''r'[1 0 0]'#FF0000'

'green''g'[0 1 0]'#00FF00'

'blue''b'[0 0 1]'#0000FF'

'cyan' 'c'[0 1 1]'#00FFFF'

'magenta''m'[1 0 1]'#FF00FF'

'yellow''y'[1 1 0]'#FFFF00'

'black''k'[0 0 0]'#000000'

'white''w'[1 1 1]'#FFFFFF'

Вот являются триплеты RGB и шестнадцатеричные цветовые коды для цветов по умолчанию использованием MATLAB® во многих типах графиков.

Триплет RGBШестнадцатеричный цветовой кодВнешний вид
[0 0.4470 0.7410]'#0072BD'

[0.8500 0.3250 0.0980]'#D95319'

[0.9290 0.6940 0.1250]'#EDB120'

[0.4940 0.1840 0.5560]'#7E2F8E'

[0.4660 0.6740 0.1880]'#77AC30'

[0.3010 0.7450 0.9330]'#4DBEEE'

[0.6350 0.0780 0.1840]'#A2142F'

По умолчанию parallelplot присваивает максимум семи уникальных цветов группы. Когда общее количество групп превышает количество заданных цветов, циклов parallelplot через заданные цвета.

Пример: p = parallelplot(__,'Color',{'blue','black','green'})

Пример: p.Color = [0 0 1; 0 0.5 0.5; 0.5 0.5 0.5]

Пример: p.Color = {'#EDB120','#77AC30','#7E2F8E'}

Советы

  • Используйте всплывающие подсказки, чтобы исследовать данные в вашем объекте ParallelCoordinatesPlot. Наведите на параллельный график координат отобразить всплывающую подсказку. Программное обеспечение подсвечивает соответствующую строку в графике. Для примера смотрите Нормализацию Данных об Изменении в Графике.

Введенный в R2019a