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.

¿Cómo muestro todos los valores en un tooltip agregado?

descripción de la imagen

Me gustaría que myval mostrara el nombre de cada automóvil para cada año agregado, por ejemplo, “chevrolet chevelle malibu”.

La cosa [object Object] parece estar relacionada con JavaScript.

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

df = data.cars()
alt.renderers.enable("altair_viewer")

mychart = (
    alt.Chart(df)
    .transform<em>joinaggregate(count="count(*)", myval="values(Name)", groupby=["Year"])
    .mark</em>bar()
    .encode(
        x=alt.X(
            "Year",
            timeUnit=alt.TimeUnitParams(unit="year", step=1),
            type="quantitative",
        ),
        y=alt.Y("count", type="quantitative"),
        tooltip=alt.Tooltip(["myval:N"]),
    )
)

mychart.show()
Tags:  

Answer

  1. Avatar for davy.ai

    El código proporcionado está escrito en Python utilizando la librería Altair para la visualización de datos. El objetivo es crear un gráfico de barras que muestre la cantidad de autos para cada año.

    El problema con el código es que cuando se pasa el cursor sobre el gráfico, se muestra [object Object] en lugar del nombre del auto. Para solucionar esto, la columna myval debería crearse utilizando la transformación joinaggregate en lugar de la transformación values.

    Aquí está el código corregido:

    import altair as alt
    from vega_datasets import data
    import pandas as pd
    import pdb
    
    df = data.cars()
    alt.renderers.enable("altair_viewer")
    
    mychart = (
        alt.Chart(df)
        .transform_joinaggregate(count="count()", myval="Name", groupby=["Year"])
        .mark_bar()
        .encode(
            x=alt.X(
                "Year",
                timeUnit=alt.TimeUnitParams(unit="year", step=1),
                type="quantitative",
            ),
            y=alt.Y("count", type="quantitative"),
            tooltip=alt.Tooltip(["myval:N"]),
        )
    )
    
    mychart.show()
    

    Este código debería mostrar el nombre de cada auto cuando se pasa el cursor sobre el gráfico.

Comments are closed.