es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

escalas interactivas compartidas con trazo 1D o trama con marcadores

Cuando una gráfica es de una dimensión (1D) o tiene marcas de división, se fuerza a que el dominio incluya el origen. Sin embargo, cuando combino esta gráfica con otra gráfica de dos dimensiones/no con marcas de división, las escalas interactivas compartidas no funcionan.

domain = alt.selection_interval(bind="scales", encodings=["x", "y"])

chart1d =\
    ( alt.Chart(d1d)
    . mark_tick()
    . encode(x="values")
    . add_selection(domain)
    )

chart2d =\
    ( alt.Chart(d2d)
    . mark_line()
    . encode(x="x", y="y")
    . add_selection(domain)
    )

chart = alt.vconcat(chart1d, chart2d)

Me gustaría:
* Que el dominio de la gráfica 1D utilice el dominio de la gráfica 2D, sea cual sea.
* Compartir el desplazamiento horizontal (panning) y el zoom.
* Deshabilitar el desplazamiento vertical (panning) únicamente para la gráfica 1D.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para actualizar el dominio del gráfico 1D y usar el del gráfico 2D, podemos actualizar la vinculación del intervalo de selección para usar las escalas del gráfico 2D. También podemos desactivar el desplazamiento en el eje y para el gráfico 1D estableciendo el parámetro zoom en False para esa codificación.

    domain = alt.selection_interval(bind='scales', encodings=['x', 'y'], init={'x': (0, 1), 'y': (0, 1)})
    
    chart_1d =\
        ( alt.Chart(d1d)
        . mark_tick()
        . encode(
            x=alt.X('values', scale=alt.Scale(domain=domain.ref('x'))),
            y=alt.Y('count()', scale=alt.Scale(domain=domain.ref('y')), zoom=False)
        )
        )
    
    chart_2d =\
        ( alt.Chart(d2d)
        . mark_line()
        . encode(x='x', y='y')
        . add_selection(domain)
        )
    
    chart = alt.vconcat(chart_1d, chart_2d)
    

    Ahora, el gráfico 1D utilizará las escalas del gráfico 2D, y el desplazamiento y el zoom se compartirán entre ellos. El desplazamiento en el eje y solo estará desactivado para el gráfico 1D.

Comments are closed.