Проблема в том, что граненые диаграммы нельзя наслоить (это потому, что в общем случае нет гарантии, что два слоя будут иметь совместимые фасеты). С другой стороны, многослойные диаграммы могут быть огранены. Например:
# Import data
import altair as alt
from vega_datasets import data
source = data.cars()
# Configure common options
scale = alt.Scale(paddingInner=0)
# Configure heatmap
heatmap = alt.Chart().mark_rect().encode(
alt.X('Cylinders:O', scale=scale),
alt.Y('Year:O', scale=scale),
color='count()'
)
# Configure text
text = alt.Chart().mark_text(baseline='middle').encode(
x='Cylinders:O',
y='Year:O',
text='count()',
color=alt.value('white')
)
# Draw the chart.
alt.layer(heatmap, text, data=source).facet(
column='Origin'
)
Обратите внимание, что при использовании этого подхода важно указывать данные на уровне фасета, а не чем в дочерних слоях. Для получения дополнительной информации см. Граненые диаграммы в документах Альтаира.
Сообщение об ошибке здесь раньше было более полезным ... кажется, что библиотека jsonschema
сообщает об ошибках проверки схемы иначе, чем раньше.