Прямоугольники — Rect

Примитив rect представляет произвольный прямоугольник.

Свойства прямоугольников

Определение rect поддерживает любые стандартные свойства и следующие специальные свойства:

Нажмите, чтобы показать таблицу
СвойствоТипОписание
widthanyOf(number, ExprRef, RelativeBandSize)

Ширина примитива: фиксированное число пикселей либо относительная доля полосы. Например, {band: 0.5} означает половину полосы.

heightanyOf(number, ExprRef, RelativeBandSize)

Высота примитива: фиксированное число пикселей либо относительная доля полосы. Например, {band: 0.5} означает половину полосы.

alignanyOf(Align, ExprRef)

Горизонтальное выравнивание текста или примитивов с диапазоном: area, bar, image, rect, rule. Значения: "left", "right", "center". Для примитивов с диапазоном ссылки на выражения не поддерживаются.

baselineanyOf(TextBaseline, ExprRef)

Для текста — вертикальная базовая линия: "alphabetic", используемая по умолчанию, "top", "middle", "bottom", "line-top", "line-bottom" либо ссылка на выражение, возвращающее допустимое значение. line-top и line-bottom похожи на top и bottom, но вычисляются относительно lineHeight, а не только fontSize. Для примитивов с диапазоном — вертикальное выравнивание "top", "middle" или "bottom"; ссылки на выражения для них не поддерживаются.

cornerRadiusanyOf(number, ExprRef)

Радиус скругления углов прямоугольников или дуг в пикселях. По умолчанию: 0.

Примеры

Тепловая карта

Прямоугольники с дискретными полями в x и y создают тепловую карту:

import altair as alt
from altair.datasets import data

source = data.seattle_weather()

alt.Chart(source).mark_rect().encode(
    alt.X("date(date):O").axis(labelAngle=0, format="%e").title("Day"),
    alt.Y("month(date):O").title("Month"),
    alt.Color("max(temp_max):Q").title("Max Temp"),
)

Прямоугольники с заданными границами

Указание x и x2 и/или y и y2 создаёт прямоугольник между соответствующими значениями.

Например, rect может служить слоем аннотаций, затеняющим диапазон между общими минимальным и максимальным значениями:

import altair as alt
from altair.datasets import data

source = data.cars()

point = alt.Chart(source).mark_point().encode(
    x="Horsepower:Q",
    y="Miles_per_Gallon:Q",
)

rect = alt.Chart(source).mark_rect().encode(
    y="max(Miles_per_Gallon)",
    y2="min(Miles_per_Gallon)",
    opacity=alt.value(0.2),
)

point + rect