Betrachten Sie das folgende MRE: < /p>
# create data
df = pd.DataFrame()
df['x'] = [0, 1, 2] * 3
df['y'] = [0] * 3 + [1] * 3 + [2] * 3
# create selections
click_select = alt.selection_point(name='_click_select_', toggle='true', encodings=['x','y'], empty=False, clear=False)
box_select = alt.selection_interval(name='_box_select_', empty=False,
on="[mousedown[event.altKey], mouseup] > mousemove",
translate="[mousedown[event.altKey], mouseup] > mousemove!")
# initialize
base = alt.Chart(df).mark_point().encode(x='x', y='y')
base = base.encode(color=alt.when(click_select | box_select).then(alt.value('red')).otherwise(alt.value('blue')))
base = base.add_params(click_select, box_select)
< /code>
Dies ist ein Streudiagramm mit 9 Punkten. Ich würde erwarten, dass diese Punkte blau sind, um zu beginnen, und dann rot, wenn sie entweder direkt auf sie klicken oder sie in das Box Select -Select beim Halten von Alt. Nur wenn beide Click_Select auf einen Punkt geklickt haben und Box_Select ein Feld erstellt hat, erscheint die Handlung wie beabsichtigt, mit ausgewählten Punkten in Rot und allen anderen in Blau. Da ich jedoch für beide Auswahlen leer = falsch einsetzte, dachte ich, dass beide als falsch bewertet werden sollten und daher auch die 'oder' falsch sein sollte, was den Zustand 'ansonsten' auslöst. Ich habe getestet, den Parameter "leer" auf beiden Auswahlen zu ändern und als zusätzliches Argument für wann (), aber es scheint keine Wirkung zu haben. Und selbst dann, warum sollte beide Auswahlen aktiv sein, wenn es ein 'oder' Zustand ist?>
Kombination mehrerer Auswahlen in Altair mit der 'leeren' Eigenschaft ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post