Типы данных: quantitative, ordinal, nominal, temporal, geojson

В 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

Тип данных является центральным элементом декларативного описания, поскольку он:

  • определяет автоматическую конфигурацию визуализации
  • влияет на выбор шкал и осей
  • задаёт допустимые трансформации
  • управляет семантикой взаимодействия с данными

Система работает по принципу строгого соответствия: каждая переменная должна быть явно интерпретирована через один из типов, иначе поведение становится неоднозначным или деградирует до базового уровня обработки.