тепловая карта

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

Синтаксис

h = heatmap(tbl,xvar,yvar)
h = heatmap(tbl,xvar,yvar,'ColorVariable',cvar)
h = heatmap(cdata)
h = heatmap(xvalues,yvalues,cdata)
h = heatmap(___,Name,Value)
h = heatmap(parent,___)

Описание

пример

h = heatmap(tbl,xvar,yvar) создает тепловую карту из таблицы tbl и возвращает объект HeatmapChart. Вход xvar указывает на табличную переменную, чтобы отобразиться вдоль оси X. Вход yvar указывает на табличную переменную, чтобы отобразиться вдоль оси Y. Цвета по умолчанию основаны на агрегации количества, которая составляет число раз, каждая пара значений X и Y появляется вместе в таблице. Используйте h, чтобы изменить тепловую карту после того, как это будет создано. Для списка свойств смотрите HeatmapChart Properties.

пример

h = heatmap(tbl,xvar,yvar,'ColorVariable',cvar) использует табличную переменную, заданную cvar, чтобы вычислить цветные данные. Метод расчета по умолчанию является средней агрегацией.

пример

h = heatmap(cdata) создает тепловую карту из матричного cdata. Тепловая карта имеет одну ячейку для каждого значения в cdata.

пример

h = heatmap(xvalues,yvalues,cdata) задает метки для значений, которые появляются вдоль оси X и оси Y.

пример

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

h = heatmap(parent,___) создает тепловую карту в фигуре, панели или вкладке, заданной parent.

Примеры

свернуть все

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

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

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus');

Создайте тепловую карту и переупорядочьте метки вдоль оси Y.

Загрузите набор данных patients и создайте тепловую карту из данных. Присвойте объект HeatmapChart переменной h.

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus');

Переупорядочьте метки вдоль оси Y.

h.YDisplayData = {'Excellent','Good','Fair','Poor'};

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

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

Загрузите набор данных patients и создайте тепловую карту из данных. Окрасьте каждую ячейку с помощью среднего возраста пациентов с конкретной парой Smoker и значений SelfAssessedHealthStatus путем установки опции ColorVariable на 'Age'.

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus','ColorVariable','Age');

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

Загрузите набор данных пациентов и создайте тепловую карту из данных. Окрасьте каждую ячейку с помощью среднего возраста пациентов с конкретной парой значений SelfAssessedHealthStatus и Smoker. Задайте опцию ColorVariable как 'Age' и опцию ColorMethod как 'median'.

load patients
tbl = table(LastName,Age,Gender,SelfAssessedHealthStatus,...
    Smoker,Weight,Location);
h = heatmap(tbl,'Smoker','SelfAssessedHealthStatus','ColorVariable','Age','ColorMethod','median');

Создайте матрицу данных. Затем создайте тепловую карту матричных значений. Метки по умолчанию вдоль оси X и оси Y появляются как 1, 2, 3, и так далее.

cdata = [45 60 32; 43 54 76; 32 94 68; 23 95 58];
h = heatmap(cdata);

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

cdata = [45 60 32; 43 54 76; 32 94 68; 23 95 58];
xvalues = {'Small','Medium','Large'};
yvalues = {'Green','Red','Blue','Gray'};
h = heatmap(xvalues,yvalues,cdata);

h.Title = 'T-Shirt Orders';
h.XLabel = 'Sizes';
h.YLabel = 'Colors';

Создайте тепловую карту и нормируйте цвета вдоль каждого столбца или строки путем установки свойства ColorScaling.

Считайте файл примера outages.csv в таблицу. Файл примера содержит данные, представляющие отключения электричества электроэнергетики в, Объединяет состояния. Таблица содержит шесть столбцов: Region, OutageTime, Loss, Customers, RestorationTime и Cause. Отобразите первые пять строк каждого столбца.

T = readtable('outages.csv');
T(1:5,:)
ans=5×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'   

Создайте тепловую карту, которая показывает различные области вдоль оси X и различные причины отключения электричества вдоль оси Y. В каждой ячейке покажите, сколько раз каждая область испытала отключение электроэнергии из-за конкретной причины.

h = heatmap(T,'Region','Cause');

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

h.ColorScaling = 'scaledcolumns';

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

h.ColorScaling = 'scaledrows';

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

Считайте файл примера Temperature.csv в таблицу. Файл содержит три столбца: Month, Year и TemperatureF.

tbl = readtable(fullfile(matlabroot,'examples','graphics','TemperatureData.csv'));

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

months = categorical(tbl.Month);
years = categorical(tbl.Year);
xlabels = categories(months);
ylabels = categories(years);

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

nummonths = numel(xlabels);
numyears = numel(ylabels);

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

x = double(months);
y = double(years);
temps = tbl.TemperatureF;
cdata = accumarray([y,x],temps,[numyears,nummonths],@max,NaN);

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

h = heatmap(xlabels,ylabels,cdata);

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

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

свернуть все

Таблица Source, заданная как таблица или расписание.

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

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

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

  • Вектор символов или скаляр строки указание на одни из имен переменных. Например, heatmap(tbl,'HealthStatus','Gender') выбирает переменную под названием 'HealthStatus' для x - ось.

  • Числовой скаляр, указывающий на индекс табличной переменной. Например, heatmap(tbl,2,3) выбирает вторую переменную в таблице для x - ось.

  • Логический вектор, содержащий один элемент true.

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

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

Свойство XVariable объектно-ориентированной памяти HeatmapChart выбранная переменная.

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

  • Вектор символов или скаляр строки одних из имен переменных. Например, heatmap(tbl,'HealthStatus','Gender') выбирает переменную под названием 'HealthStatus' для y - ось.

  • Числовой скаляр, указывающий на индекс табличной переменной. Например, heatmap(tbl,2,3) выбирает третью переменную в таблице для y - ось.

  • Логический вектор, содержащий один элемент true.

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

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

Свойство YVariable объектно-ориентированной памяти HeatmapChart выбранная переменная.

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

  • Вектор символов или скаляр строки одних из имен переменных. Например, heatmap(__,'ColorVariable,'HealthStatus') выбирает переменную под названием 'HealthStatus' для y - ось.

  • Числовой скаляр, указывающий на индекс табличной переменной. Например, heatmap(__,'ColorVariable',1) выбирает третью переменную в таблице для y - ось.

  • Логический вектор, содержащий один элемент true.

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

Значением свойства является пустой [] при использовании матричных данных. Свойство ColorVariable объектно-ориентированной памяти HeatmapChart выбранная переменная. Свойство ColorData заполняет с данными на основе выбранной переменной.

По умолчанию heatmap вычисляет цветные данные на основе средней агрегации. Чтобы изменить метод расчета, установите свойство ColorMethod.

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

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

Пример: [40 24 68; 68 37 58; 49 23 46]

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

Пример: {'small','medium','large'}

Пример: categorical({'small','medium','large'})

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

Пример: {'small','medium','large'}

Пример: categorical({'small','medium','large'})

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

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

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

Пример: heatmap(tbl,xvar,yvar,'ColorVariable','Temperatures','ColorMethod','median')

Примечание

Перечисленные здесь свойства являются только подмножеством. Для полного списка смотрите HeatmapChart Properties.

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

По умолчанию тепловые карты поддерживают подмножество разметки TeX для текста, который вы задаете. Используйте синтаксис TeX, чтобы добавить верхние индексы и индексы, изменить тип шрифта и окрасить и включать специальные символы в текст. Если вы хотите символ разметки TeX в обычном тексте, таком как подчеркивание (_), то вставляете наклонную черту влево (\) перед символом, вы хотите включать. Наклонная черта влево является символом ESC TeX. Для получения дополнительной информации смотрите свойство Interpreter текстового объекта.

Пример: h = heatmap(__,'Title','My Title Text')

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

Метод, чтобы вычислить цветные значения данных (сохраненный в ColorData), заданный как 'count', 'mean', 'median', 'sum' или 'none'.

Если вы не хотите использовать третью переменную из таблицы для цветных данных, то задайте метод в этой таблице.

МетодОписание
'count'Считайте число раз, каждая пара значений X и Y появляется в исходной таблице. Тепловая карта не использует свойство ColorVariable. Это значение является значением по умолчанию, когда вы используете табличные данные и не задаете параметр ColorVariable.

Если вы хотите использовать третью переменную из таблицы для цветных данных, то установленный свойство ColorVariable в переменную вы хотите и задаете свойство ColorMethod как один из методов, перечисленных в этой таблице. Для каждой пары значений X и Y методы используют соответствующие значения в столбце ColorVariable исходной таблицы, чтобы вычислить данные.

МетодОписание
'mean'Вычислите среднее значение. Это значение является значением по умолчанию, когда вы задаете свойство ColorVariable.
'median'Вычислите среднее значение.
'sum'Суммируйте значения.
'none'Используйте значение точно. Таблица не может содержать больше чем один экземпляр каждой пары значений X и Y. Это значение является значением по умолчанию при использовании матричных данных.

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

Пример: h = heatmap(__,'ColorMethod','median')

Пример: h.ColorMethod = 'median'

Советы

  • Чтобы в интерактивном режиме исследовать данные в вашей тепловой карте, используйте эти опции.

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

    • Панорамирование — Перетаскивание тепловая карта или использование клавиши со стрелками к панорамированию через строки или столбцы.

    • Всплывающие подсказки — Наводят на тепловую карту, чтобы отобразить всплывающую подсказку.

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

    • Сортировка оценивает — Нажатие кнопки значок, который появляется, когда вы наводите на метку столбца или строку. Щелкните однажды, чтобы отсортировать значения в порядке возрастания, дважды отсортировать значения в порядке убывания, и в третий раз, чтобы сбросить порядок.

Вопросы совместимости

развернуть все

Поведение изменяется в R2019a

Введенный в R2017a