Укажите заголовок графика и заголовок фасета в Altair LayerChart

Используя набор данных iris, мы можем создать простую фасетную диаграмму:

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. Как в этом случае я могу контролировать и основной заголовок сюжета, и заголовок фасета?


person C. Braun    schedule 29.10.2019    source источник


Ответы (1)


Аргументы ключевого слова, переданные методу facet, передаются в созданную alt.FacetChart диаграмму.

Любые аргументы ключевого слова, которые вы хотите передать кодировке фасета, можно передать через оболочку alt.Facet(), как и в других кодировках.

Например:

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

введите здесь описание изображения

person jakevdp    schedule 29.10.2019
comment
не могли бы вы обновить свой ответ решением, которое вы упомянули в проблеме? - person C. Braun; 26.11.2019