Как выбрать данные для диаграммы на основе раскрывающегося списка? - PullRequest
1 голос
/ 01 апреля 2020

У меня есть фрейм данных, для которого я хочу выбрать набор строк на основе раскрывающегося списка. Поэтому, учитывая следующий код:

import pandas as pd
import altair as alt
from vega_datasets import data

cars = pd.melt(data.cars(), ['Horsepower', 'Origin', 'Name', 'Year'])
cars.head()

select_box = alt.binding_select(options=list(cars['variable'].unique()))
selection = alt.selection_single(name='d_axis', fields=['variable'], bind=select_box)

alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='value',
    color='Origin',
    tooltip='Name'
).add_selection(
    selection
).transform_filter(
    selection
)

Вместо того, чтобы изменять значения X, я хочу выбирать только автомобили, где Origin - это 'USA'.
Таким образом, что-то, где

alt.Chart(cars).mark_point().encode(

становится:

alt.Chart(cars[cars['Origin'] == selection]).mark_point().encode(

Спасибо, Стивен

1 Ответ

1 голос
/ 01 апреля 2020

Вы можете t ie выделение для поля, которое вы хотите отфильтровать:

import altair as alt
from vega_datasets import data

cars = data.cars()

select_box = alt.binding_select(options=list(cars['Origin'].unique()))
selection = alt.selection_single(fields=['Origin'], bind=select_box)

alt.Chart(cars).mark_point().encode(
    x='Horsepower',
    y='Miles_per_Gallon'
).add_selection(
    selection
).transform_filter(
    selection
)

enter image description here

...