Каналы кодирования
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 |
Строка и/или столбец общего разбиения на панели. | Население США во времени |