Создание тепловой карты из табличных данных

Тепловые карты являются способом визуализировать данные с помощью цвета. Этот пример показывает, как импортировать файл в MATLAB® как таблица и создать тепловую карту из столбцов таблицы. Это также показывает, как изменить внешний вид тепловой карты, такой как установка заголовка и подписей по осям.

Импорт файла как таблица

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

tbl = readtable(fullfile(matlabroot,'examples','graphics','TemperatureData.csv'));
head(tbl,5)
ans=5×4 table
    Year      Month      Day    TemperatureF
    ____    _________    ___    ____________

    2015    'January'     1          23     
    2015    'January'     2          31     
    2015    'January'     3          25     
    2015    'January'     4          39     
    2015    'January'     5          29     

Создание основной тепловой карты

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

h = heatmap(tbl,'Month','Year','ColorVariable','TemperatureF');

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

Переупорядочение значений вдоль оси

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

Чтобы использовать категориальные массивы, сначала измените данные в столбце Month таблицы от массива ячеек до категориального массива. Затем используйте функцию reordercats, чтобы переупорядочить категории. Можно применить эти функции к таблице в рабочей области (tbl) или к таблице, хранимой в свойстве SourceTable объекта HeatmapChart (h.SourceTable). Применение их к таблице, хранимой в объекте HeatmapChart старается не влиять на исходные данные.

h.SourceTable.Month = categorical(h.SourceTable.Month);
neworder = {'January','February','March','April','May','June','July',...
    'August','September','October','November','December'};
h.SourceTable.Month = reordercats(h.SourceTable.Month,neworder);

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

Также можно переупорядочить значения вдоль оси с помощью свойств XDisplayData и YDisplayData объекта HeatmapChart.

h.XDisplayData = {'January','February','March','April','May','June','July',...
    'August','September','October','November','December'};

Изменение заголовка и подписей по осям

Когда вы создаете тепловую карту с помощью табличных данных, тепловая карта автоматически генерирует заголовок и подписи по осям. Настройте заголовок и подписи по осям путем установки Title, XLabel и свойств YLabel объекта HeatmapChart. Например, измените заголовок и удалите метку оси X. Кроме того, измените размер шрифта.

h.Title = 'Average Temperatures';
h.XLabel = '';
h.FontSize = 12;

Изменение внешнего вида пропавших без вести ячеек данных

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

h.MissingDataColor = [0.8 0.8 0.8];
h.MissingDataLabel = 'No Data';

Удаление шкалы палитры

Удалите шкалу палитры путем установки свойства ColorbarVisible.

h.ColorbarVisible = 'off';

Текст ячейки формата

Настройте формат текста, который появляется в каждой ячейке путем установки свойства CellLabelFormat. Например, отобразите текст без десятичных значений.

h.CellLabelFormat = '%.0f';

Добавление или удаление значений вдоль оси

Покажите только первый месяц каждой четверти путем установки свойства XDisplayData. Добавьте год 2017 вдоль оси Y путем установки свойства YDisplayData. Установите эти свойства на подмножество, надмножество или перестановку значений в XData или YData, соответственно.

h.XDisplayData = {'January','April','July','October'};
h.YDisplayData = {'2015','2016','2017'};

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

Смотрите также

Функции

Свойства