Линии переменной толщины — Trail

Примитив trail соединяет точки данных линией. Он похож на line, но толщина может меняться в зависимости от данных. В отличие от line, trail не поддерживает разные методы интерполяции и задаёт цвет через fill, а не stroke. Он полезен для линий, чья толщина отражает исходные значения.

Свойства Trail

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

Нажмите, чтобы показать таблицу
СвойствоТипОписание
orientOrientation

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

Примеры

Линия переменной толщины

import altair as alt
from altair.datasets import data

source = data.stocks()

alt.Chart(source).mark_trail().encode(
    x="date",
    y="price",
    color="symbol",
    size="price",
)

Кометная диаграмма изменений между двумя состояниями

import altair as alt
from altair.datasets import data

alt.Chart(data.barley.url).transform_pivot(
    "year",
    value="yield",
    groupby=["variety", "site"]
).transform_fold(
    ["1931", "1932"],
    as_=["year", "yield"]
).transform_calculate(
    calculate="datum['1932'] - datum['1931']",
    as_="delta"
).mark_trail().encode(
    alt.X("year:O").title(None),
    alt.Y("variety:N").title("Variety"),
    alt.Size("yield:Q")
        .scale(range=[0, 12])
        .legend(values=[20, 60])
        .title("Barley Yield (bushels/acre)"),
    alt.Color("delta:Q")
        .scale(domainMid=0)
        .title("Yield Delta (%)"),
    alt.Tooltip(["year:O", "yield:Q"]),
    alt.Column("site:N").title("Site"),
).configure_legend(
    orient='bottom',
    direction='horizontal'
).configure_view(
    stroke=None
).properties(
    title="Barley Yield comparison between 1932 and 1931"
)