使用 Altair 时只显示选定的行?

Only show selected rows when faceting with Altair?

当我使用 altair 制作此示例时,最终图表显示了两个方面的所有数据。但是,我只想显示每个方面的数据。

altair 有这个选项吗?还是我指定的方面不正确?

import altair as alt
from vega_datasets import data
df = data.airports()
df = df[df['state'].isin(['MD', 'WY'])][0:12]

chart = alt.Chart(df).mark_circle().encode(
    alt.X('latitude'),
    alt.Y('name', sort=alt.EncodingSortField(field="latitude", op="mean", order='descending')),
    alt.Color('state'))

chart.facet(row='state')

A​​ltair 的复合图默认共享比例。如果您希望比例独立,可以通过 resolve_scale() 方法指定。

例如:

import altair as alt
from vega_datasets import data
df = data.airports()
df = df[df['state'].isin(['MD', 'WY'])][0:12]

chart = alt.Chart(df).mark_circle().encode(
    alt.X('latitude'),
    alt.Y('name', sort=alt.EncodingSortField(field="latitude", op="mean", order='descending')),
    alt.Color('state'))

chart.facet(row='state').resolve_scale(y='independent')