4

如何将构面标题(在本例中为年份)移动到每个图的上方?默认值似乎在图表的一侧。这很容易改变吗?

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',
)

有问题的情节

4

2 回答 2

1

一种解决方案是删除行规范并将构面设置为具有单列

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)

在此处输入图像描述

于 2019-10-25T15:41:32.843 回答
1

对此的一般解决方案是使用参数的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'))
)

带有两年数据和标签的热图

于 2019-12-23T22:55:20.620 回答