Блок-график показывает данные в виде линий, столбцов или круговой диаграммы. Цифры для него считает скрипт, поэтому график всегда строится по свежим данным: например, выручка по дням или нагрузка на сервисы за неделю.
Два способа описать график
- Простой способ — скрипт возвращает два набора: категории (по оси) и серии (значения). Портал сам подбирает цвета, подписи и всплывающие подсказки. Если на графике больше одной серии, автоматически появляется легенда. Это подходит в большинстве случаев.
- Полный способ — скрипт возвращает готовые настройки графика: тип, оси, цвета, оформление. Нужен, когда требуется необычный вид — например, смешанный график со столбцами и линией.
Что настраивается в самой странице
- Высота — от 160 до 720 точек. По умолчанию 320.
- Время выполнения — сколько секунд ждать расчёт, прежде чем показать ошибку.
- Срок хранения результата — как часто пересчитывать данные, чтобы лишний раз не тревожить источник.
- Готовые настройки — если заданы прямо в странице, скрипт может их дополнить, а его данные всегда важнее статичных.
График подстраивается под тему
График сам подстраивается под светлую и тёмную тему портала: оси, подписи, подсказки и цвета линий меняются вместе с оформлением. Когда читатель переключает тему, график перерисовывается сразу, не запрашивая данные заново. Так цифры выглядят аккуратно и читаются на любом фоне.
Как выглядит загрузка и ошибки
- Загрузка — на месте графика плавно пульсирует рамка нужной высоты. Экран не «прыгает»: место под график уже занято.
- Нет данных — если скрипт вернул пустой набор, показывается спокойная надпись «Нет данных», а не пустое поле.
- Ошибка — читатель видит понятное сообщение, а рядом есть кнопка, чтобы скопировать подробности и передать их агенту.
- Библиотека не загрузилась — если нет доступа к внешней библиотеке графиков, вместо пустого места показывается честное сообщение об этом. Остальные блоки страницы работают как обычно.
Под графиком всегда видно, когда данные обновились, и есть кнопка обновления. Нажатие пересчитывает график тут же, не перезагружая страницу.
Дальше: как устроены формы с отправкой данных — в разделе Формы; как считаются данные — в разделе Скрипты и зависимости; как скрипт получает и возвращает данные — в разделе Динамические блоки на Python.