В этом уроке вы узнаете, как в Даталенс сделать красивый и информативный индикатор с разметкой. Такой показатель будет содержать в себе не только основную информацию, но и дополнительный текст или цифры. Например, сумма выручки по категории и ее доля от общей суммы выручки.
Итак, предположим у нас есть некий датасет с данными о выручке на платформах Android и iOS. У меня данные уже в таком консолидированном виде, но они могут быть и детализированные.
И нашей задачей является вывести общий индикатор с выручкой и указанием доли этой выручки от общей суммы.
Для этого создаем новый чарт-индикатор на базе этого датасета.
Тут нам потребуется создать новое поле, в котором и будет происходить настоящее волшебство. Давайте рассмотрим по шагам все действия.
Итак, для вывода давайте выберем выручку платформы Андроид. Для начала выведем сумму выручки, округленную до тысяч с постфиксом тыс.
Добавляем в новое поле нашу выручку, делим ее на 1000 и округляем.
В результате получаем цифру 51. 51 тысяча. Теперь давайте добавим постфикс, чтобы было понятно, что это тысячи.
Для этого используем конкатинацию, ну или сцепление текста в строку. Сделать это можно через знак плюс. Но обратите внимание, что сцеплять можно только текст с текстом. Поэтому помимо сцепления преобразуем наше число 51 тоже в текст. В этом нам поможет функция STR().
Оборачиваем то, что мы писали до этого в STR() и добавляем слово тыс.
А еще давайте зададим цвет для этого фрагмента текста. Пусть он будет зеленый. Для этого обернем все, что уже написано в функцию COLOR().
Делается это просто, указываем наш текст, а затем код HTML цвета. Найти всю палитру цветов можно через Яндекс поиск. Но давайте посмотрим, что у нас вышло. После применения цвета слетает большой размер и жирность шрифта.
Поэтому перед назначением цвета добавим еще свойство размера и зададим 43 px. Это примерно и будет обычный размер шрифта индикатора. А в конце сделаем весь текст жирным.
Все, первая часть нашей надписи готова.
Если вспомнить всю задачу, то помимо суммы выручки Андроид в этом же индикаторе нам надо вывести и процент ее доли от общей выручки.
Как это сделать?
Давайте попробуем добавить к уже имеющейся надписи продолжение и напишем пока фиксированный текст, что — «доля от общей выручки….» и далее потом подставим процент, который эта выручка составляет. Делаем это также через знак плюс.
Да, текст добавился, но добавился следом за суммой. Но было бы красивее, чтобы эта надпись была уже ниже, под суммой, как бы в виде комментария. Тут нам поможет функция переноса строки BR(). Добавим в формулу и ее.
Так уже намного лучше.
Ну и теперь нам осталось добавить продолжение этой строки с суммой процента, который эта выручка составляет. Причем, процент должен тоже рассчитываться. Давайте добавим формулу.
Суть проста. Просто делим выручку Андроид на сумму всей выручки и умножаем на 100. Это и будет наш процент. А поскольку соединять в текст можно только текст, то оборачиваем наш расчет в STR().
В принципе, готово. Но согласитесь, выглядит число не очень красиво. Поэтому давайте также округлим результат, добавим значок процента и окрасим эту часть в красный. По аналогии, как мы уже делали это с 51 тыс.
BOLD(COLOR(size(str(ROUND([Выручка Android]/1000))+" тыс.","43px"), "#008000"))+BR()+COLOR("доля от общей выручки ", "#000000") +COLOR(BOLD(size(str(round(([Выручка Android]/([Выручка Android]+[Выручка iOS]))*100))+"%","12px")),"#DC143C")
После всех этих действий мы, наконец, получаем красивый и удобочитаемый индикатор.
Ради эксперимента давайте попробуем изменить исходные цифры и посмотрим, как изменится индикатор. Я просто заменила суммы в источнике, после чего данные в индикаторе также сами поменялись, сохранив при этом формат и визуализацию.
Таким образом, с помощью функций разметки, мы смогли полностью решить поставленную задачу и сделать небольшой, но очень информативный и емкий индикатор с несколькими показателями.
Надеюсь, данный урок был вам полезен и интересен!
Наши курсы
Если вам понравился урок, то можете поддержать проект по кнопке ниже. Это очень поможет делать для вас больше интересных и полезных выпусков. Спасибо!
Если вам понравился урок, подписывайтесь на канал или группу и ставьте лайки. А также пишите в комментариях свои кейсы или вопросы. Самые интересные мы обязательно разберем.
Добрый день! А как разбить число на разряды, например «# ##0 ₽»?
Тут, к сожалению, просто не получится. Так как это текст, то придется что-то придумывать с текстовыми функциями. Например, REGEXP_REPLACE. Ну или как-то определять длину числа и добавлять пробел через каждые три символа. Попробую сделать урок на эту тему.
спасибо, буду ждать!