Столбцы — Bar

Примитивы bar полезны во многих визуализациях, включая обычные столбчатые диаграммы, накопление и временные шкалы.

Свойства столбцов

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

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

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

heightanyOf(number, ExprRef, RelativeBandSize)

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

orientOrientation

Ориентация диаграмм bar без накопления, tick, area и line: horizontal, используемая по умолчанию, либо vertical. Для bar, rule и tick определяет, к x или y применяется размер. Для area задаёт orient результата Vega. Для line и trail определяет порядок сортировки точек, если config.sortLineBy не задан. При накоплении ориентация определяется самим накоплением, и явно заданное значение игнорируется.

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"; ссылки на выражения для них не поддерживаются.

binSpacingnumber

Промежуток между столбцами для поля с разбиением на интервалы. Обычно выбирают 0, предпочтительный для статистических диаграмм, или 1, используемый по умолчанию в Vega-Lite и примерах D3. По умолчанию: 1.

cornerRadiusanyOf(number, ExprRef)

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

cornerRadiusEndanyOf(number, ExprRef)

Для вертикальных столбцов — радиус верхнего левого и верхнего правого углов; для горизонтальных — верхнего правого и нижнего правого.

cornerRadiusTopLeftanyOf(number, ExprRef)

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

cornerRadiusTopRightanyOf(number, ExprRef)

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

cornerRadiusBottomRightanyOf(number, ExprRef)

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

cornerRadiusBottomLeftanyOf(number, ExprRef)

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

Примеры

Один столбец

Сопоставление количественного поля только с x или только с y создаёт диаграмму с одним столбцом:

import altair as alt
from altair import datum
from altair.datasets import data

source = data.population.url

alt.Chart(source).mark_bar().encode(
    alt.X("sum(people):Q").title("Population")
).transform_filter(
    datum.year == 2000
)

Столбчатая диаграмма

Добавление дискретного поля в y создаёт горизонтальную столбчатую диаграмму. alt.Step(20) задаёт высоту на каждый дискретный шаг:

import altair as alt
from altair import datum
from altair.datasets import data

source = data.population.url

alt.Chart(source).mark_bar().encode(
    alt.X("sum(people):Q").title("Population"),
    alt.Y("age:O"),
).transform_filter(
    datum.year == 2000
).properties(height=alt.Step(20))

Столбцы на временной оси

Обычно x и y кодируют пару дискретного и непрерывного полей, но оба канала могут быть непрерывными. Например, при временном поле по x шкала x непрерывна. Размер столбцов на такой шкале по умолчанию определяется настройкой continuousBandSize:

import altair as alt
from altair.datasets import data

source = data.seattle_weather()

alt.Chart(source).mark_bar().encode(
    alt.X("month(date):T").title("Date"),
    alt.Y("mean(precipitation):Q"),
)

Гистограммы

Если данные заранее не агрегированы и каждая запись соответствует одному элементу, количественное поле с разбиением на интервалы по x и агрегирование count по y создают гистограмму:

import altair as alt
from altair.datasets import data

source = data.movies.url

alt.Chart(source).mark_bar().encode(
    alt.X("IMDB Rating:Q").bin(),
    y='count()',
)

Столбцы с накоплением

Добавление color по умолчанию создаёт накопление. В примере используется цветовое кодирование; диапазон его шкалы можно настроить для подходящего оформления. Подробнее о настройках накопления см. stack.

import altair as alt
from altair.datasets import data

source = data.barley()

alt.Chart(source).mark_bar().encode(
    x="variety",
    y="sum(yield)",
    color="site"
)

Группированные столбцы со смещением

import altair as alt
import pandas as pd

source = pd.DataFrame(
    {
        "category": ["A", "A", "B", "B", "C", "C"],
        "group": ["x", "y", "z", "x", "y", "z"],
        "value": [0.1, 0.6, 0.9, 0.7, 0.2, 0.6],
    }
)

alt.Chart(source).mark_bar().encode(
    x=alt.X("category:N"),
    xOffset="group:N",
    y=alt.Y("value:Q"),
    color=alt.Color("group:N"),
)