在 Altair LayerChart 中指定绘图标题和构面标题

Specify plot title and facet title in Altair LayerChart

使用鸢尾花数据集,我们可以创建一个简单的分面图:

import altair as alt
from vega_datasets import data
iris = data.iris.url

alt.Chart(iris, title='Main Title').mark_bar().encode(
    x='petalWidth:Q',
    y='count(petalLength):Q',
    color='species:N',
    facet=alt.Facet('species:N', title=None)
)

这里我可以分别控制主剧情标题和分面标题

现在假设我想创建相同的图表,但要为每个条添加文本注释:

base = alt.Chart(iris).encode(
    x='petalWidth:Q',
    y='count(petalLength):Q',
    color='species:N',
    text='count(petalLength):Q'
)

c = base.mark_bar()
t = base.mark_text(dy=-6)

alt.layer(c, t).facet('species:N', title=None).properties(title='Main Title')

这一次,species 标题位于分面上方。在这种情况下,如何控制主情节标题和分面标题?

传递给 facet 方法的关键字参数被传递给创建的 alt.FacetChart 图表。

您想要传递给分面编码的任何关键字参数都可以通过 alt.Facet() 包装器传递,类似于其他编码。

例如:

alt.layer(c, t).facet(
    facet=alt.Facet('species:N', title=None),
    title='Main Title'
)