Изменить положение заголовка фасета в Altair?

Как я могу переместить заголовки фасетов (в данном случае год), чтобы они находились над каждым графиком? Кажется, что значение по умолчанию находится сбоку от диаграммы. Можно ли это легко изменить?

import altair as alt
from vega_datasets import data

df = data.seattle_weather()

alt.Chart(df).mark_rect().encode(
    alt.Y('month(date):O', title='day'),
    alt.X('date(date):O', title='month'),
    color='temp_max:Q'
).facet(
    row='year(date):N',
)

проблемный сюжет


person max    schedule 17.09.2018    source источник


Ответы (2)


Общее решение для этого - использовать параметр labelOrient параметра header:

df = df[df.date.dt.year < 2014]  # make a smaller chart

alt.Chart(df).mark_rect().encode(
    alt.Y('month(date):O', title='day'),
    alt.X('date(date):O', title='month'),
    color='temp_max:Q'
).facet(
    row=alt.Row('year(date):N', header=alt.Header(labelOrient='top'))
)

тепловая карта с данными за два года и ярлыками вверху

person C. Braun    schedule 23.12.2019

Одно из решений - удалить спецификацию строки и установить для фасета один столбец.

import altair as alt
from vega_datasets import data

df = data.seattle_weather()

alt.Chart(df).mark_rect().encode(
    alt.Y('month(date):O', title='day'),
    alt.X('date(date):O', title='month'),
    color='temp_max:Q'
).facet('year(date):N', columns=1)

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

person eitanlees    schedule 25.10.2019