
Обзор
Dynamic Chart предоставляет полный контроль над визуализацией через JavaScript-код, который преобразует данные куба в конфигурацию ECharts.Dynamic Chart подходит для случаев, когда стандартные типы графиков не покрывают требования визуализации.
Поля
Тип графика
Именованные Cube.js запросы. Каждый ключ — произвольное имя запроса, значение — стандартный объект CubeQuery.
JavaScript-код функции, которая преобразует результаты Cube.js запросов в объект конфигурации ECharts.Код должен быть строкой вида
function(queries) { ... }, где queries — объект типа Record<string, FormattedResultSet>. Ключи соответствуют именам запросов из поля queries.Включить сравнение периодов. При включении в
data добавляются данные за предыдущий период.Примеры
Горизонтальная столбчатая диаграмма с порогом
Пример: процент скидки по локациям с выделением значений выше порога.KPI-плитка (только текст)
Используйте EChartstitle для отображения числового KPI без графических элементов.
Линейный график с несколькими запросами
Пример использования нескольких именованных запросов.Радарная диаграмма
Редактирование в JSON-режиме
При редактировании конфигурации в JSON-режиме значениеtransform_code должно быть однострочной строкой — переносы строк записываются как \n, табуляция как \t. Это требование формата JSON (многострочные строки не поддерживаются).
Использование annotation для динамических подписей
Вместо хардкода подписей осей можно читатьshortTitle из метаданных куба.
Рекомендации
Изучите документацию ECharts
Ознакомьтесь с примерами ECharts для понимания возможностей.
Структура данных
Значения в
data — это объекты FormattedResultValue с полями value (сырое значение) и formattedValue (отформатированная строка). Используйте .value для вычислений и .formattedValue для отображения в подписях и tooltip.Используйте annotation для динамических подписей
Вместо хардкода названий осей и легенды, используйте
queries.имя.annotation.measures['cube.measure'].shortTitle для получения заголовков из метаданных куба.Несколько запросов
Используйте несколько именованных запросов в
queries, когда данные приходят из разных кубов или требуют разных группировок. Все результаты будут доступны в transform_code через queries.имя_запроса.Обрабатывайте пустые данные
Всегда проверяйте наличие данных:
data.length === 0 и значений: row['measure'].value || 0Функции в ECharts
Функции в возвращаемом объекте (например,
tooltip.formatter, label.formatter) поддерживаются — они автоматически сериализуются и восстанавливаются. Используйте обычный синтаксис function(params) { ... }.Генерация с помощью LLM
Вы можете использовать LLM (ChatGPT, Claude и т.д.) для генерации конфигурацииdynamic_chart. Скопируйте промпт ниже, заполните верхнюю часть (запросы и описание графика) и отправьте в LLM. Полученный JSON можно вставить в редактор графика.
Полезные ссылки
ECharts Examples
Галерея примеров ECharts
ECharts Options
Справочник по опциям
Cube.js Query Format
Формат запросов Cube.js
← Круговые диаграммы | Обзор графиков