В Vega-Lite модель данных строится вокруг строгого определения
семантики каждого поля. Тип данных влияет на то, какие преобразования
применяются автоматически, как интерпретируются масштабы (scales), какие
оси (axes) строятся и какие визуальные каналы допустимы для кодирования.
Основные типы данных: quantitative,
ordinal, nominal,
temporal, geojson.
quantitative (количественные
данные)
Тип quantitative используется для числовых значений,
над которыми определены арифметические операции и которые обладают
непрерывной или дискретной числовой шкалой.
Семантика
Количественные данные предполагают:
- возможность сравнения через операции
<,
>, =
- вычисление разностей и отношений
- применение математических агрегаций (sum, mean, median и др.)
- непрерывные или условно дискретные шкалы
Визуальное отображение
Для quantitative-данных обычно применяются:
- линейные шкалы (linear scale)
- логарифмические шкалы (log scale)
- интерваловые оси (continuous axis)
Пример использования
{
"mark": "bar",
"encoding": {
"x": {"field": "sales", "type": "quantitative"},
"y": {"field": "product", "type": "nominal"}
}
}
Особенности обработки
Vega-Lite автоматически:
- рассчитывает диапазон значений (domain)
- добавляет числовые оси
- применяет интерполяцию при необходимости
Частые ошибки
- использование quantitative для категорий с числовыми кодами
(например, ID)
- попытка интерпретации количественных данных как категориальных без
агрегации
ordinal (порядковые данные)
Тип ordinal используется для данных, которые имеют
логический порядок, но не обладают фиксированным числовым расстоянием
между значениями.
Семантика
Ordinal-данные:
- упорядочены
- не требуют равных интервалов
- допускают сравнение «больше/меньше» по порядку, но не по
величине
Примеры:
- уровни образования (школа → бакалавр → магистр)
- оценки (низкий → средний → высокий)
- ранги
Визуальное отображение
- упорядоченные дискретные шкалы
- цветовые градиенты с направлением
- сортированные категории
Пример
{
"mark": "line",
"encoding": {
"x": {"field": "stage", "type": "ordinal"},
"y": {"field": "value", "type": "quantitative"}
}
}
Поведение системы
Vega-Lite:
- сохраняет заданный порядок категорий
- не интерпретирует расстояния между значениями
- позволяет задавать custom sort через
sort
nominal (номинативные данные)
Тип nominal представляет категориальные данные без
внутреннего порядка.
Семантика
Nominal-данные:
- не имеют естественного порядка
- используются как идентификаторы классов
- не поддерживают математические операции
Примеры:
- имена пользователей
- страны
- типы товаров
- категории событий
Визуальные особенности
- цветовые различия (categorical color scale)
- пространственное разделение (bar, point)
- группировка
Пример
{
"mark": "bar",
"encoding": {
"x": {"field": "country", "type": "nominal"},
"y": {"field": "population", "type": "quantitative"}
}
}
Внутреннее поведение
- порядок категорий по умолчанию может быть алфавитным
- масштаб определяется как discrete band scale
- часто используется с color encoding
temporal (временные данные)
Тип temporal применяется к датам и времени, включая
сложные временные структуры.
Семантика
Temporal-данные:
- имеют линейную временную ось
- поддерживают операции сравнения
- учитывают календарные особенности (месяцы, годы, дни недели)
Поддерживаемые форматы:
- ISO 8601 (основной стандарт)
- UNIX timestamp
- строки даты
Визуальное отображение
- временные оси (time scale)
- адаптивная плотность тиков
- автоматическое форматирование меток
Пример
{
"mark": "line",
"encoding": {
"x": {"field": "date", "type": "temporal"},
"y": {"field": "temperature", "type": "quantitative"}
}
}
Особенности обработки
Vega-Lite:
- автоматически парсит строки дат
- строит time scale вместо linear scale
- адаптирует формат отображения (год/месяц/день)
Временные преобразования
Поддерживаются:
- агрегации по времени (year, month, day)
- биннинг временных интервалов
- оконные функции
geojson (географические
данные)
Тип geojson предназначен для пространственных
данных, описанных в формате GeoJSON.
Семантика
GeoJSON включает:
- точки (Point)
- линии (LineString)
- полигоны (Polygon)
- мультигеометрии (MultiPoint, MultiPolygon)
Визуальное отображение
Используется совместно с:
- проекциями (projection)
- географическими картами
- spatial encoding
Пример базового
использования
{
"mark": "geoshape",
"encoding": {
"shape": {"field": "geometry", "type": "geojson"}
}
}
Использование с проекцией
{
"projection": {"type": "mercator"},
"mark": "geoshape",
"encoding": {
"color": {"field": "population", "type": "quantitative"}
}
}
Особенности обработки
Vega:
- интерпретирует GeoJSON как геометрические объекты
- применяет географические проекции
- поддерживает пространственные операции
Типичные сценарии
- карты стран и регионов
- плотность населения
- географическая агрегация событий
- визуализация маршрутов
Сравнение типов
данных в системе кодирования
Структурные различия
| Тип |
Порядок |
Шкала |
Операции |
Пример |
| quantitative |
есть |
непрерывная |
арифметика |
доход, температура |
| ordinal |
есть |
дискретная |
сравнение |
рейтинг, уровень |
| nominal |
нет |
категориальная |
группировка |
страна, имя |
| temporal |
есть |
временная |
временные операции |
дата, время |
| geojson |
частично |
пространственная |
геометрия |
карта, координаты |
Влияние типа
данных на систему масштабов (scales)
Тип данных напрямую определяет тип шкалы:
- quantitative → linear / log / sqrt
- ordinal → band / point
- nominal → categorical
- temporal → time scale
- geojson → projection-based transform
Vega-Lite использует эту привязку для автоматической конфигурации
визуализаций без явного задания всех параметров.
Поведение агрегаций в
зависимости от типа
quantitative
- sum, average, min, max
- histogram binning
ordinal
- чаще используется как группировочный ключ
- агрегации допустимы, но интерпретация зависит от контекста
nominal
- count, distinct count
- группировка без числовой интерпретации
temporal
- timeUnit агрегации (year, month, quarter)
- оконные временные функции
geojson
- spatial joins
- географические агрегаты (density, containment)
Ошибки типизации и их
последствия
Неверное определение типа данных приводит к системным искажениям
визуализации:
- nominal вместо quantitative → теряется масштабирование
- quantitative вместо nominal → ложная интерпретация расстояний
- ordinal без сортировки → нарушается логический порядок
- temporal как string → отключается time scale
- geojson как nominal → теряется геометрическая интерпретация
Роль типов
данных в декларативной модели Vega-Lite
Тип данных является центральным элементом декларативного описания,
поскольку он:
- определяет автоматическую конфигурацию визуализации
- влияет на выбор шкал и осей
- задаёт допустимые трансформации
- управляет семантикой взаимодействия с данными
Система работает по принципу строгого соответствия: каждая переменная
должна быть явно интерпретирована через один из типов, иначе поведение
становится неоднозначным или деградирует до базового уровня
обработки.