Настраивайте легенду и цветовую гамму в интерактивных диаграммах "Альтаир" - PullRequest
0 голосов
/ 20 мая 2018

Мне нужен интерактивный график, поэтому я сначала определяю

click = selection_multi(fields=['species'])

Внутри метода encode() хорошо работает следующее:

color = condition(click, 
                  'species',
                  value('gray'))

Но я бы лучше использовал свой собственныйцвет palette а я не хочу legend.Я могу добиться этого с помощью следующего.

color = Color('species',
              scale=Scale(range=palette),
              legend=None)

Но теперь у меня нет выбора!Могу ли я получить их обоих?

1 Ответ

0 голосов
/ 21 мая 2018

Чтобы получить множественный выбор, собственную палитру и отсутствие легенды, просто укажите все это внутри color().

Рабочий код

import altair as alt
from vega_datasets import data
iris = data.iris()

click = alt.selection_multi(fields=['species'])
palette = alt.Scale(domain=['setosa', 'versicolor', 'virginica'],
                  range=['lightgreen', 'darkgreen', 'olive'])

alt.Chart(iris).mark_point().encode(
    x='petalWidth',
    y='petalLength',    
    color=alt.condition(click,
                        'species:N', alt.value('lightgray'), 
                        scale=palette,
                        legend=None)
).properties(
    selection=click
)

производит:

enter image description here

И если вы нажмете на любую точку, весь этот вид будет выбран и окрашен в соответствии с цветовым условием.(Выбранные точки принимают цвет от palette, а невыбранные отображаются серым.)

...