在 Altair 中仅显示特定方面 Python
Show only specific facet in Altair Python
使用 Altair 我只想为给定的方面绘制特定的图。例如,使用 Vega 数据集,我想只为欧洲绘制汽车。我知道如何使用 facet 将 3 个图分开,但还没有弄清楚如何只显示一个图。
import altair as alt
from vega_datasets import data
source = data.cars()
chart = alt.Chart(source).mark_circle(size=60).encode(
x='Horsepower',
y='Miles_per_Gallon',
color='Origin',
tooltip=['Name', 'Origin', 'Horsepower', 'Miles_per_Gallon']
)
chart.facet(row='Origin')
这导致欧洲、日本和美国的 3 行绘图。我将如何只显示其中一个或三个中的两个?
您可以使用 filter transform 来限制图表中显示的数据。例如,这将分面限制为美国和欧洲:
import altair as alt
from vega_datasets import data
source = data.cars()
chart = alt.Chart(source).mark_circle(size=60).encode(
x='Horsepower',
y='Miles_per_Gallon',
color='Origin',
tooltip=['Name', 'Origin', 'Horsepower', 'Miles_per_Gallon']
).transform_filter(
(alt.datum.Origin == 'USA') | (alt.datum.Origin == 'Europe')
)
chart.facet(row='Origin')
使用 Altair 我只想为给定的方面绘制特定的图。例如,使用 Vega 数据集,我想只为欧洲绘制汽车。我知道如何使用 facet 将 3 个图分开,但还没有弄清楚如何只显示一个图。
import altair as alt
from vega_datasets import data
source = data.cars()
chart = alt.Chart(source).mark_circle(size=60).encode(
x='Horsepower',
y='Miles_per_Gallon',
color='Origin',
tooltip=['Name', 'Origin', 'Horsepower', 'Miles_per_Gallon']
)
chart.facet(row='Origin')
这导致欧洲、日本和美国的 3 行绘图。我将如何只显示其中一个或三个中的两个?
您可以使用 filter transform 来限制图表中显示的数据。例如,这将分面限制为美国和欧洲:
import altair as alt
from vega_datasets import data
source = data.cars()
chart = alt.Chart(source).mark_circle(size=60).encode(
x='Horsepower',
y='Miles_per_Gallon',
color='Origin',
tooltip=['Name', 'Origin', 'Horsepower', 'Miles_per_Gallon']
).transform_filter(
(alt.datum.Origin == 'USA') | (alt.datum.Origin == 'Europe')
)
chart.facet(row='Origin')