exponenta event banner

heatmap

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

Описание

пример

heatmap(tbl,xvar,yvar) создает тепловую карту из таблицы tbl. xvar ввод указывает переменную таблицы для отображения вдоль оси X. yvar ввод указывает переменную таблицы для отображения вдоль оси Y. Цвета по умолчанию основаны на агрегации счетчиков, которая суммирует количество раз, когда каждая пара значений x и y появляется вместе в таблице.

пример

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

пример

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

пример

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

пример

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

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

h = heatmap(___) возвращает значение HeatmapChart объект. Использовать h для изменения свойств диаграммы после ее создания. Список свойств см. в разделе Свойства тепловой карты.

Примеры

свернуть все

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

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

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

Figure contains an object of type heatmap. The chart of type heatmap has title Count of SelfAssessedHealthStatus vs. Smoker.

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

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

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

Figure contains an object of type heatmap. The chart of type heatmap has title Count of SelfAssessedHealthStatus vs. Smoker.

Измените порядок меток вдоль оси Y.

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

Figure contains an object of type heatmap. The chart of type heatmap has title Count of SelfAssessedHealthStatus vs. Smoker.

Можно также переупорядочить метки, изменив данные на категориальные, а затем переупорядочив категории с помощью 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');

Figure contains an object of type heatmap. The chart of type heatmap has title Mean of Age.

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

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

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

Figure contains an object of type heatmap. The chart of type heatmap has title Median of Age.

Создайте матрицу данных. Затем создайте тепловую карту значений матрицы. Метки по умолчанию вдоль осей 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';

Figure contains an object of type heatmap. The chart of type heatmap has title T-Shirt Orders.

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

Прочитать образец файла outages.csv в таблицу. Образец файла содержит данные, представляющие отключения электроэнергии в штатах Unites. Таблица содержит шесть столбцов: 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');

Figure contains an object of type heatmap. The chart of type heatmap has title Count of Cause vs. Region.

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

h.ColorScaling = 'scaledcolumns';

Figure contains an object of type heatmap. The chart of type heatmap has title Count of Cause vs. Region.

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

h.ColorScaling = 'scaledrows';

Figure contains an object of type heatmap. The chart of type heatmap has title Count of Cause vs. Region.

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

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

tbl = readtable('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 функция для категориальных массивов для изменения порядка меток осей.

Входные аргументы

свернуть все

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

Можно создать таблицу из переменных рабочей области с помощью 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') выбирает переменную с именем 'Gender' для оси 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, TiledChartLayout, или GridLayout объект.

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

Если не требуется использовать третью переменную из таблицы для данных цвета, укажите метод как 'count'. Когда метод 'count', тепловая карта не использует ColorVariable и вместо этого подсчитывает количество раз, когда каждая пара значений x и y появляется в исходной таблице. Это значение является значением по умолчанию при использовании табличных данных и не указывает ColorVariable параметр.

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

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

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

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

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

Выходные аргументы

свернуть все

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

Подробнее

свернуть все

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

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

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

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

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

Совет

  • Для интерактивного изучения данных в тепловой карте используйте эти опции.

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

    • Панорамирование - щелкните и перетащите тепловую карту или используйте клавиши со стрелками для панорамирования по строкам или столбцам.

    • Подсказки данных - наведите курсор на тепловую карту для отображения подсказки данных.

    • Переупорядочить строки и столбцы - щелкните и перетащите метку строки или столбца, чтобы переместить ее в другое положение.

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

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

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

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

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

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

В R2019a изменилось поведение

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