parallelplot

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

Описание

пример

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: [100x3 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высота, и Weight значения. Создайте график координат параллели с помощью матричных данных. Пометьте координатные переменные в графике. Линии в графике соответствуют отдельным пациентам.

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

              Data: [100x3 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: [100x3 double]
    CoordinateData: [1 3]
         GroupData: [100x1 logical]

  Show all properties

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

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

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

              Data: [100x3 double]
    CoordinateData: [2 3]
         GroupData: {100x1 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Панель, Tab, или TiledChartLayout объект.

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

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

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

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

Чтобы создать многострочный заголовок, задайте массив строк или массив ячеек из символьных векторов. Каждый элемент в массиве соответствует линии текста.

Если вы задаете заголовок категориального массива, MATLAB® использует значения в массиве, не категории.

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

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

Пример: p.Title = {'My','Title'}

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

МетодОписание
'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 объект, используйте эти опции (некоторые не доступны в Live Editor):

    • Изменение масштаба — Использование колесико прокрутки, чтобы масштабировать.

    • Панорамирование — Перетаскивание параллель координирует график панорамировать.

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

    • Перестройте координаты — Перетаскивание координатная метка в виде галочки горизонтально, чтобы переместить соответствующую координатную линейку в различное положение. Для примера смотрите, Исследуют Табличные Данные Используя Параллельный График Координат.

Введенный в R2019a