Столбцы — Bar
Примитивы bar полезны во многих визуализациях, включая обычные столбчатые диаграммы, накопление и временные шкалы.
Свойства столбцов
Определение bar поддерживает любые стандартные свойства и следующие специальные свойства:
Нажмите, чтобы показать таблицу
| Свойство | Тип | Описание |
|---|---|---|
width | anyOf(number, ExprRef, RelativeBandSize) | Ширина примитива: фиксированное число пикселей либо относительная доля полосы. Например, |
height | anyOf(number, ExprRef, RelativeBandSize) | Высота примитива: фиксированное число пикселей либо относительная доля полосы. Например, |
orient | Orientation | Ориентация диаграмм bar без накопления, tick, area и line: horizontal, используемая по умолчанию, либо vertical. Для bar, rule и tick определяет, к x или y применяется размер. Для area задаёт orient результата Vega. Для line и trail определяет порядок сортировки точек, если |
align | anyOf(Align, ExprRef) | Горизонтальное выравнивание текста или примитивов с диапазоном: area, bar, image, rect, rule. Значения: |
baseline | anyOf(TextBaseline, ExprRef) | Для текста — вертикальная базовая линия: |
binSpacing | number | Промежуток между столбцами для поля с разбиением на интервалы. Обычно выбирают 0, предпочтительный для статистических диаграмм, или 1, используемый по умолчанию в Vega-Lite и примерах D3. По умолчанию: |
cornerRadius | anyOf(number, ExprRef) | Радиус скругления углов прямоугольников или дуг в пикселях. По умолчанию: |
cornerRadiusEnd | anyOf(number, ExprRef) | Для вертикальных столбцов — радиус верхнего левого и верхнего правого углов; для горизонтальных — верхнего правого и нижнего правого. |
cornerRadiusTopLeft | anyOf(number, ExprRef) | Радиус скругления верхнего левого угла прямоугольника в пикселях. По умолчанию: |
cornerRadiusTopRight | anyOf(number, ExprRef) | Радиус скругления верхнего правого угла прямоугольника в пикселях. По умолчанию: |
cornerRadiusBottomRight | anyOf(number, ExprRef) | Радиус скругления нижнего правого угла прямоугольника в пикселях. По умолчанию: |
cornerRadiusBottomLeft | anyOf(number, ExprRef) | Радиус скругления нижнего левого угла прямоугольника в пикселях. По умолчанию: |
Примеры
Один столбец
Сопоставление количественного поля только с 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"),
)