Точечная визуализация является одним из базовых типов представления данных в экосистеме Vega-Lite и низкоуровневой библиотеки Vega. Маркер point используется для отображения отдельных наблюдений в виде геометрических примитивов — точек, кругов, символов — в декартовой системе координат. Несмотря на кажущуюся простоту, именно point лежит в основе большинства аналитических диаграмм: scatter plot, bubble chart, jitter plot, density-like визуализации и интерактивные выборки.
В Vega-Lite point представляет отдельный элемент данных, отображаемый как независимая точка на графике. В базовой форме каждая точка соответствует одной записи (row) в наборе данных.
Ключевые свойства:
Point часто выступает как «атомарный визуальный блок» аналитической графики.
Минимальная спецификация point-визуализации в Vega-Lite:
{
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"data": { "url": "data.csv" },
"mark": "point",
"encoding": {
"x": { "field": "a", "type": "quantitative" },
"y": { "field": "b", "type": "quantitative" }
}
}
Здесь каждая запись отображается как точка в координатах (a, b).
Point-маркер всегда опирается на позиционные каналы:
Типы данных:
Пример временной диаграммы:
{
"mark": "point",
"encoding": {
"x": { "field": "date", "type": "temporal" },
"y": { "field": "value", "type": "quantitative" }
}
}
Point в Vega-Lite поддерживает расширенное визуальное кодирование многомерных данных.
Используется для группировки и категориального разделения:
"color": { "field": "category", "type": "nominal" }
Цвет превращает scatter plot в многосерийную диаграмму.
Позволяет кодировать третью количественную переменную:
"size": { "field": "weight", "type": "quantitative" }
Результат — bubble chart, где площадь точки отражает величину показателя.
Используется для категориальной дифференциации:
"shape": { "field": "group", "type": "nominal" }
Поддерживаются различные символы: круг, квадрат, треугольник и другие.
Позволяет управлять плотностью отображения:
"opacity": { "value": 0.6 }
или через поле данных:
"opacity": { "field": "density", "type": "quantitative" }
Tooltip связывает визуальный элемент с исходными данными:
"tooltip": [
{ "field": "name", "type": "nominal" },
{ "field": "value", "type": "quantitative" }
]
Каждая точка становится интерактивным информационным узлом.
Хотя point чаще используется для сырых данных, он также применяется после агрегации:
"aggregate": "mean"
Пример:
{
"mark": "point",
"encoding": {
"x": { "field": "category", "type": "nominal" },
"y": { "aggregate": "mean", "field": "value" }
}
}
Это превращает точки в статистические центры распределений.
Point является ключевым элементом интерактивной аналитики.
"selection": {
"pick": {
"type": "single",
"on": "click"
}
}
"selection": {
"brush": {
"type": "interval"
}
}
Используется для выделения диапазонов на scatter plot.
Point часто комбинируется с другими mark:
Пример:
{
"layer": [
{
"mark": "line"
},
{
"mark": "point"
}
]
}
Такая комбинация подчёркивает дискретные наблюдения на фоне тренда.
В Vega точечный маркер представлен как symbol mark:
{
"type": "symbol",
"encode": {
"enter": {
"x": { "field": "x" },
"y": { "field": "y" },
"size": { "value": 100 },
"fill": { "value": "steelblue" }
}
}
}
Vega предоставляет полный контроль над геометрией и отрисовкой, включая физические пиксельные размеры и ручное управление encode-процессом.
При работе с тысячами и миллионами точек возникают особенности:
Vega-Lite автоматически применяет оптимизации при компиляции в Vega.
При категориальных осях точки часто перекрываются. Решение — jitter:
{
"mark": "point",
"encoding": {
"x": { "field": "category", "type": "nominal" },
"y": { "field": "value", "type": "quantitative" },
"xOffset": { "value": 2 }
}
}
Также применяется случайное смещение через трансформации:
"transform": [
{ "calculate": "random()", "as": "jitter" }
]
Facet позволяет разбивать точечные диаграммы:
{
"facet": {
"field": "region",
"type": "nominal"
},
"spec": {
"mark": "point",
"encoding": {
"x": { "field": "a", "type": "quantitative" },
"y": { "field": "b", "type": "quantitative" }
}
}
}
Каждый подграфик становится независимым scatter plot.
Point поддерживает отображение до 5–6 измерений одновременно:
Такая структура превращает двумерную плоскость в многомерное аналитическое пространство.
Глобальные параметры:
"config": {
"point": {
"filled": true,
"size": 60,
"opacity": 0.8
}
}
Позволяет унифицировать стиль всех point-маркеров в спецификации.
Point применяется в следующих аналитических паттернах:
При увеличении плотности данных point может:
Vega-Lite предоставляет декларативные механизмы для адаптации отображения без изменения исходных данных.
Point-маркеры формируют визуальный язык:
Эти принципы делают point фундаментом визуальной аналитики в декларативных системах построения графиков.