exponenta event banner

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-scares, без какого-либо дрожания, используя 'DataNormalization' и 'Jitter' аргументы пары имя-значение.

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

Figure contains an object of type parallelplot.

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 функция.

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, 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, массивом duration, категориальным массивом, строковым массивом или массивом ячеек символьных векторов, 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 объект, представляющий собой автономную визуализацию. Использовать p для изменения объекта после его создания. Для списка свойств посмотрите ParallelCoordinatesPlot Properties.

Подробнее

свернуть все

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

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

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

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

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

Совет

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

    • Зумирование (Zoom) - используйте колесо прокрутки для зумирования.

    • Панорамирование (Pan) - щелкните и перетащите график параллельных координат для панорамирования.

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

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

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

    • Чтобы добавить или удалить строку из подсказки данных, щелкните правой кнопкой мыши в любом месте графика и выберите пункт «Изменить подсказки данных». Затем выберите или отмените выбор переменной.

    • Чтобы добавить или удалить несколько строк, щелкните правой кнопкой мыши на графике, выберите «Изменить подсказки по данным» и выберите «Дополнительно». Затем добавьте переменные, нажав кнопку > >, или удалите их, нажав кнопку < <.

Представлен в R2019a