Vega

Бесплатно
Открытый исходный код

Сайт: vega.github.io/vega

Vega — декларативный язык описания визуализаций данных, разработанный для создания интерактивных и статических графиков в веб-среде. Он задаёт представление данных и правила визуального отображения в виде структурированных спецификаций на базе JSON, которые затем интерпретируются визуализационной системой для рендеринга с использованием Canvas или SVG. Vega служит промежуточным уровнем между низкоуровневыми API рисования и высокоуровневыми инструментами, предоставляя формальные примитивы для описания данных, преобразований, шкал, осей, маркеров и взаимодействий.

Проект возник как попытка формализовать и стандартизировать способ задания визуализаций, облегчая воспроизводимость и переносимость графиков между приложениями. Vega поддерживает декларативную модель, где спецификация описывает «что» должно быть показано, а не «как» рисовать, и включает механизмы для обработки событий и интерактивности, что делает её пригодной как для аналитических панелей, так и для образовательных и научных визуализаций. На основе Vega были созданы более высокоуровневые библиотеки, использующие её спецификации как основу для упрощённого создания распространённых типов графиков.

  • Декларативность: визуализация описывается в виде JSON-спецификации без императивного кода рендеринга.
  • Поддержка Canvas и SVG: реализация рендеринга допускает использование различных технологий вывода для разных целей.
  • Преобразования данных: встроенные операции для агрегации, фильтрации, биннинга и вычисляемых полей.
  • Шкалы и оси: гибкая настройка шкал, форматирования и отображения координатных систем.
  • Марки и слои: описания примитивов (точки, линии, столбцы и т.д.) и их композиция для сложных визуализаций.
  • Интерактивность: события, селекции и трансформации, позволяющие создавать отклики на пользовательские действия.
  • Переиспользуемость: спецификации можно сохранять, передавать и повторно использовать в разных приложениях.
  • Совместимость с инструментами: служит основой для высокоуровневых библиотек и конструкторов визуализаций.
  • Портируемость: человеко-читаемый формат JSON облегчает генерацию и преобразование спецификаций программными средствами.
  • Расширяемость: архитектура позволяет добавлять новые типы трансформаций и рендеринговые стратегии.
Подробнее