Размер легенды исчезает при добавлении выделения в диаграмму рассеяния - PullRequest
0 голосов
/ 12 марта 2019

Вот как должна выглядеть легенда:

enter image description here

Но вместо этого я получаю:

enter image description here

Это мой код. Когда я не добавляю выделение, легенда выглядит нормально. Я забыл сделать какое-либо обязательство?

input_dropdown = alt.binding_select(options=['LIIDC', 'LIGIC', 'LIADC', 'LMECC', 'LIMCC', 'LTISC'])
selection = alt.selection_single(fields=['Carrera'], bind=input_dropdown, name="Filtrar")
color = alt.condition(selection,
                    alt.Color('Carrera:N', scale=alt.Scale(scheme='dark2')),
                    alt.value('#00000000'))

alt.Chart(df).mark_point(filled=True, size=100).encode(
    x= alt.X('Promedio de Preparatoria', scale = alt.Scale(domain=[6, 10.5])),
    y= alt.Y('Resultado Ceneval', scale = alt.Scale(domain=[900, 1300])),
    color=color,
    size=alt.Size('Beca Promedio', scale=alt.Scale(range=[30, 200]))
).add_selection(
    selection
).properties(
    width = 900, 
    height = 600,
    title = 'Promedio de Preparatoria contra Resultado Ceneval por Carrera'
).interactive()

1 Ответ

1 голос
/ 12 марта 2019

Похоже, что это может быть ошибка в Vega-Lite. Чтобы обойти это, вместо этого вы можете использовать кодировку непрозрачности и оставить цвет неизменным:

input_dropdown = alt.binding_select(options=['LIIDC', 'LIGIC', 'LIADC', 'LMECC', 'LIMCC', 'LTISC'])
selection = alt.selection_single(fields=['Carrera'], bind=input_dropdown, name="Filtrar")

alt.Chart(df).mark_point(filled=True, size=100).encode(
    x= alt.X('Promedio de Preparatoria', scale = alt.Scale(domain=[6, 10.5])),
    y= alt.Y('Resultado Ceneval', scale = alt.Scale(domain=[900, 1300])),
    color=alt.Color('Carrera:N', scale=alt.Scale(scheme='dark2')),
    opacity=alt.condition(selection, alt.value(0.8), alt.value(0)),
    size=alt.Size('Beca Promedio', scale=alt.Scale(range=[30, 200]))
).add_selection(
    selection
).properties(
    width = 900, 
    height = 600,
    title = 'Promedio de Preparatoria contra Resultado Ceneval por Carrera'
).interactive()

Другим вариантом будет добавление свойства обводки к отметке, которое будет отражено в легенде.

...