Enviar variable a Dash con devolución de llamada en Python
¿Es posible tener un solo app.callback que se ejecute con diferentes entradas de matrices?
updatefigurematrix es una función que devuelve una figura basada en un dataframe de entrada. Me gustaría llamar a esta función varias veces con diferentes dataframes (matrices), pero no sé cómo hacerlo.
@app.callback(Output('tabel-matrix', 'figure'),
[Input('checklist', 'value')] )
def update_figure_matrix(selected_value):
matrix_filter = matrix[matrix['First#39;].isin(selected_value)]
matrix_filter = matrix_filter[matrix_filter['Second'].isin(selected_value)]
figure = px.scatter(
matrix_filter, #dataframe
x="First', #x
y=quot;Second', #y
size=quot;Total', #tamaño de las burbujas
color=quot;Total',#color de las burbujas
color_continuous_scale=px.colors.sequential.Plotly3, #tema de color
title=quot;Datos asociados con el primer y segundo punto de contacto', #título del gráfico
)
figure.update_layout(
xaxis_tickangle=30,#ángulo de las marcas en el eje x
title=dict(x=0.5), #centra el título
xaxis_tickfont=dict(size=9), #establece la fuente para el eje x
yaxis_tickfont=dict(size=9), #establece la fuente para el eje y
margin=dict(l=500, r=20, t=50, b=20), #establece el margen
paper_bgcolor='LightSteelblue', #establece el color de fondo del gráfico
)
return figure
# Me gustaría llamar a este código una vez con matrix1 (dataframe) y otra vez con matrix2 (diferente dataframe)
....
...
..
dcc.Graph(id='tabel-matrix', #matrix = matrix1
),
dcc.Graph(id='tabel-matrix', #matrix = matrix2
),
davy.ai
Sí, es posible tener un solo app.callback ejecutándose en diferentes entradas de matrices. Esto se puede lograr utilizando la misma función de callback para ambos componentes dcc.Graph y especificando los argumentos de entrada y salida correspondientes.
Por ejemplo, puedes modificar la función de callback existente para aceptar un argumento adicional de entrada (por ejemplo,
matrix
) de la siguiente manera:Luego, puedes crear dos componentes
dcc.Graph
con diferentes identificadores y especificar el argumentomatrix
correspondiente en el objeto State, de la siguiente manera:Ten en cuenta que debes pasar el
graph_id
como un argumento adicional a la funciónupdate_figure_matrix
para identificar qué gráfico activa la devolución de llamada.