parallelplot

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

Описание

пример

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

пример

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

пример

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

пример

parallelplot(data) создает параллельный график координат из числовой матрицы data.

пример

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

пример

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

пример

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

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

пример

p = parallelplot(___) возвращает ParallelCoordinatesPlot объект. Использование p для изменения объекта после его создания. Список свойств см. в разделе ParallelCoordinatesPlot Properties.

Примеры

свернуть все

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

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

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

Figure contains an object of type parallelplot.

p = 
  ParallelCoordinatesPlot with properties:

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

  Show all properties

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

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

p.Jitter = 0;

Figure contains an object of type parallelplot.

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

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

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');

Figure contains an object of type parallelplot.

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

Загрузите patients набор данных и создайте матрицу из Age, Height, и 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)'};

Figure contains an object of type parallelplot.

Создайте новую категориальную переменную, которая группирует каждого пациента в одну из трех категорий: 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;

Figure contains an object of type parallelplot.

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

Загрузите 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'};

Figure contains an object of type parallelplot.

Создайте другой параллельный график координат с использованием другого подмножества столбцов в 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'};

Figure contains an object of type parallelplot.

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

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

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);

Figure contains an object of type parallelplot.

The 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');

Figure contains an object of type parallelplot.

Изменение порядка событий в 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;

Figure contains an object of type parallelplot.

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

p.Color = parula(10);

Figure contains an object of type parallelplot.

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

свернуть все

Исходная таблица, заданная как таблица.

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

The SourceTable свойство ParallelCoordinatesPlot объект хранит исходную таблицу.

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

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

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

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

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

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

  • Вектор символов или строковый скаляр - указывает одно из имен табличных переменных

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

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

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

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

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

Пример: 'Smoker'

Пример: 3

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

The Data свойство ParallelCoordinatesPlot объект хранит data значения.

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

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

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

The 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, TiledChartLayout, или GridLayout объект.

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

Задайте необязательные разделенные разделенными запятой парами 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]. The 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 объект, который является автономной визуализацией. Использование p для изменения объекта после его создания. Список свойств см. в разделе ParallelCoordinatesPlot Properties.

Подробнее о

свернуть все

Автономная визуализация

Автономная визуализация является графиком, предназначенной для специального назначения, которая работает независимо от других графиков. В отличие от других графиков, таких как plot и surfавтономная визуализация имеет встроенный в нее предварительно сконфигурированный объект осей, и некоторые индивидуальные настройки недоступны. Автономная визуализация также имеет следующие характеристики:

  • Он не может быть объединен с другими графическими элементами, такими как линии, закрашенные фигуры или поверхности. Таким образом, hold команда не поддерживается.

  • The gca функция может вернуть объект графика как текущие системы координат.

  • Можно передать объект графика во многие функции MATLAB, которые принимают объект осей как входной параметр. Например, можно передать объект графика в title функция.

Совет

  • Интерактивное исследование данных в ParallelCoordinatesPlot объект, используйте следующие опции (некоторые из них недоступны в Live Editor):

    • Масштабирование - Использование колеса прокрутки для масштабирования.

    • Панорамирование - щелкните и перетащите график параллельных координат, чтобы панорамировать.

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

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

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

    • Чтобы добавить или удалить строку из всплывающей подсказки, щелкните правой кнопкой мыши в любом месте графика и укажите на Modify Data Tips. Затем выберите или отмените выбор переменной.

    • Чтобы добавить или удалить несколько строк, щелкните правой кнопкой мыши график, укажите на Modify Data Tips и выберите More. Затем добавьте переменные, нажав >> или удалив их, нажав <<.

Введенный в R2019a