Каналы кодирования

Altair предоставляет несколько групп каналов кодирования для разных задач. Ниже приведено их краткое описание.

Положение

Канал Класс Altair Описание Пример
x X Значение по оси x. Точки с подсказками
y Y Значение по оси y. Точки с подсказками
x2 X2 Второе значение x для диапазона. Диаграмма Ганта
y2 Y2 Второе значение y для диапазона. Свечная диаграмма
longitude Longitude Долгота для географических диаграмм. Точки на карте
latitude Latitude Широта для географических диаграмм. Точки на карте
longitude2 Longitude2 Вторая долгота для диапазона. Авиасообщение
latitude2 Latitude2 Вторая широта для диапазона. Авиасообщение
xError XError Величина погрешности по оси x. —
yError YError Величина погрешности по оси y. —
xError2 XError2 Вторая величина погрешности по оси x. —
yError2 YError2 Вторая величина погрешности по оси y. —
xOffset XOffset Смещение положения по оси x. Сгруппированные столбцы
yOffset YOffset Смещение положения по оси y. Точки со случайным смещением
theta Theta Начальный угол дуги. Радиальная диаграмма
theta2 Theta2 Конечный угол дуги в радианах. Диаграмма Pac-Man

Свойства примитивов

Канал Класс Altair Описание Пример
angle Angle Угол поворота примитива. Карта векторов ветра
color Color Цвет примитива. Тепловая карта
fill Fill Заливка примитива. Гребневая диаграмма
fillOpacity FillOpacity Непрозрачность заливки. —
opacity Opacity Непрозрачность примитива. Горизонтный график
radius Radius Радиус примитива. Радиальная диаграмма
shape Shape Форма примитива. Доходы по штатам и категориям
size Size Размер примитива. Пузырьковая таблица GitHub
stroke Stroke Обводка примитива. —
strokeDash StrokeDash Штриховой рисунок обводки. Несколько линий
strokeOpacity StrokeOpacity Непрозрачность обводки. —
strokeWidth StrokeWidth Толщина обводки. —

Текст и подсказки

Канал Класс Altair Описание Пример
text Text Текст примитива. Точки с подписями
tooltip Tooltip Значение подсказки. Точки с подсказками

Гиперссылка

Канал Класс Altair Описание Пример
href Href Гиперссылка для точки. Точки с гиперссылками

Detail

Группировка — важная операция визуализации. Для линий и областей неагрегированное поле, связанное с любым каналом, кроме положения, группирует линии и области с накоплением по этому полю. В агрегированных диаграммах все закодированные неагрегированные поля используются как поля группировки — подобно GROUP BY в SQL.

Канал detail задаёт дополнительные поля группировки без связи с визуальными свойствами.

Канал Класс Altair Описание Пример
detail Detail Дополнительное поле группировки. Точечная диаграмма диапазонов

Например, покажем цены акций пяти технологических компаний во времени. Поле symbol, связанное с detail, разделяет данные на линии:

import altair as alt
from altair.datasets import data

source = data.stocks()
alt.Chart(source).mark_line().encode(
    x="date:T",
    y="price:Q",
    detail="symbol:N"
)

Order

Параметр order и канал Order задают порядок рисования примитивов.

Для примитивов с накоплением он определяет порядок сегментов. Здесь части каждого столбца упорядочены по алфавиту по номинальному полю канала цвета:

import altair as alt
from altair.datasets import data

barley = data.barley()

alt.Chart(barley).mark_bar().encode(
    x='variety:N',
    y='sum(yield):Q',
    color='site:N',
    order=alt.Order("site").sort("ascending")
)

Чтобы изменить направление, задайте сортировку descending:

import altair as alt
from altair.datasets import data

barley = data.barley()

alt.Chart(barley).mark_bar().encode(
    x='variety:N',
    y='sum(yield):Q',
    color='site:N',
    order=alt.Order("site").sort("descending")
)

Тот же способ работает для других примитивов, например областей с накоплением:

import altair as alt
from altair.datasets import data

barley = data.barley()

alt.Chart(barley).mark_area().encode(
    x='variety:N',
    y='sum(yield):Q',
    color='site:N',
    order=alt.Order("site").sort("ascending")
)

В отличие от sort каналов положения, Order не принимает список значений для сортировки и не использует автоматически порядок категориального столбца pandas. Для собственного порядка сегментов можно применить подход из обсуждения Altair на GitHub, хотя в отдельных случаях его поддержка ограничена. Этот способ также согласует порядок сегментов с порядком цветов легенды, если для цветовой области задана собственная сортировка.

Для линий Order задаёт порядок соединения точек. Это позволяет соединять точки диаграммы по полю, отличному от x и y:

import altair as alt
from altair.datasets import data

driving = data.driving()

alt.Chart(driving).mark_line(point=True).encode(
    alt.X('miles').scale(zero=False),
    alt.Y('gas').scale(zero=False),
    order='year'
)

Разбиение на панели

Подробнее см. диаграммы с разбиением на панели.

Канал Класс Altair Описание Пример
column Column Столбец сетки панелей. Точки на отдельных панелях
row Row Строка сетки панелей. Панели данных о ячмене
facet Facet Строка и/или столбец общего разбиения на панели. Население США во времени