轨迹图#

trail 标记表示存储在字段中的数据点,并用一条线连接所有这些点。轨迹图与 line 标记类似,但轨迹图的宽度可以根据底层数据而变化。与折线不同,轨迹图不支持不同的插值方法,并且使用 fill(而非 stroke)作为其颜色。如果你想绘制随数据变化而大小变化的线条,轨迹图标记非常有用。

轨迹图标记属性#

trail 标记定义可以包含任何标准标记属性以及以下特殊属性

点击显示表格

属性

类型

描述

orient

方向

非堆叠柱状图、刻度线图、面积图和折线图的方向。值为水平(默认)或垂直。

  • 对于柱状图、规则图和刻度线图,这决定了柱状图和刻度线图的大小应应用于 x 还是 y 维度。

  • 对于面积图,此属性决定了 Vega 输出的 orient 属性。

  • 对于折线图和轨迹图标记,如果未指定 config.sortLineBy,此属性决定了线上点的排序顺序。对于堆叠图表,这始终由堆叠的方向决定;因此,显式指定的值将被忽略。

示例#

大小变化的折线图#

import altair as alt
from vega_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 vega_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"
)