HeatMap: Приемы построения тепловых карт – часть 2 (ColorMix)
Продолжая публикации на тему тепловых карт, сегодня расскажу, как создать двухцветный градиент в тепловой карте с помощью функции ColorMix1, ColorMix2 и ColorMixWizard.
Я буду использовать тот же пример, что и в первой части поста, с погодой по странам и городам для отдыха.
Как работает ColorMix1Функция ColorMix1 (value, ColorMin, ColorMax) возвращает представление цвета RGB для двухцветного градиента на основе значения value от 0 до 1.
Если значение value = 0, то возвращается первый цвет.
Если значение value = 1, то возвращается второй цвет.
Если 0 < value < 1, то возвращается соответствующий промежуточный оттенок.
ColorMin – это действительное представление RGB для цвета, который будет связан с нижним пределом интервала.
ColorMix – это действительное представление RGB для цвета, который будет связан с верхним пределом интервала.
Colormix1: двухцветный градиент по всем даннымДопустим, мы хотим узнать, в каких странах из всего списка стран и городов жарче всего. Для этого построим двухцветный градиент в ячейках диаграммы на основании значений температур в городах за 12 месяцев (минимальное значение температуры по всем данным таблицы — зеленый цвет, максимальное — красный цвет).
Для этого выполним следующее:
- Откроем окно «Edit Expression» для атрибута «Background Color».
- Запишем выражение, используя функцию ColorMix1:
- Нажмем кнопку OK в окне Edit Expression и кнопку ОК в окне Chart Properties, чтобы применить изменения к диаграмме. Результат окрашивания ячеек показан на Рис. 4. Все ячейки окрашены соответствующими цветами градиента — самая высокая температура (+36,3, город Шарм-эш-Шейх, август) обозначена ярким красным цветом, а самая низкая температура (-7,2, город Клагенфурт, январь) определена ярким зеленым цветом. Остальные ячейки окрашены промежуточными оттенками красного и зеленого цветов.
Отмечу, что такое отображение удобно далеко не всегда, поскольку человеческий глаз лучше всего воспринимает контрастные цвета на тепловых картах, например, черный и белый, зеленый и красный, но без градиента.
Colormix Wizard: градиент отдельно для каждой колонкиТеперь, как и в первой части поста, мы определились с месяцем отпуска (май) и хотим выбрать наиболее комфортную для нас страну пребывания. Построим двухцветные градиенты на основании значений температур в городах за каждый месяц в отдельности (минимальное значение температуры по каждому месяцу – зеленый цвет, максимальное – красный цвет).
Для атрибута «Background Color» с помощью функционала Colormix Wizard автоматически сформируем выражение на основе функции ColorMix1. Для этого выполним следующее:
- Откроем окно Edit Expression для атрибута «Background Color».
- С помощью функционала ColormixWizard автоматически сформируем выражение на основе функции ColorMix1. Для этого в окне «Edit Expression» выберем пункт меню File->ColormixWizard….
- Появится окно «Colormix Wizard». Нажмем кнопку Next, чтобы перейти в окно первого диалога. В поле Value Expression введем выражение для вычисления цвета в каждой ячейке: Only(Температура).
- Нажмем кнопку Next, чтобы перейти на следующую страницу диалога.
- В окне Step2 нажмем кнопку Reverse, чтобы установить красный цвет в качестве верхней границы, а зеленый – в качестве нижней границы.
- Нажмем последовательно кнопки Next и Finish. Функционал Colormix Wizard автоматически сгенерирует в окне EditExpression выражение для цвета ячеек:
- Нажмем кнопку OK в окне Edit Expression и кнопку ОК в окне Chart Properties, чтобы применить изменения к диаграмме. Вот наш результат окрашивания ячеек:
Вариант получился интересный, но на мой вкус, градиент здесь дает больший диапазон для выбора, чем в примере с IF.
Как работает ColorMix2Функция ColorMix2 (value, ColorMin, ColorMax, ColorZero) возвращает представление цвета RGB для двухцветного градиента с возможностью указания промежуточного цвета для центральной позиции на основе значения value от -1 до 1.
Если значение value = -1, то возвращается первый цвет.
Если значение value = 1, то возвращается второй цвет.
Если -1 < value < 1, то возвращается соответствующий промежуточный оттенок.
ColorMin – это действительное представление RGB для цвета, который будет связан с нижним пределом интервала.
ColorMix – это действительное представление RGB для цвета, который будет связан с верхним пределом интервала.
ColorZero – это действительное представление цвета RGB, который будет связан с центром интервала.
ColorMix2: двухцветный градиент для каждой колонки с указанием промежуточного цветаДопустим, нам важно выявить город со средней температурой из стран всего списка в разбивке по месяцам. Построим двухцветные градиенты с выделением центрального интервала в ячейках диаграммы за каждый месяц в отдельности (минимальное значение температуры по каждому месяцу – зеленый цвет, максимальное – красный цвет, центральный интервал – желтый цвет).
Для атрибута «Background Color» с помощью функционала Colormix Wizard автоматически сформируем выражение на основе функции ColorMix2. Для этого выполним следующее: