Dash_apps_docker_vs / callbacks.py
albertoakel's picture
Initial clean deploy (no binary files)
75c6e74
# callbacks.py
from dash import Input, Output
from fig_plots import *
def registrar_callbacks(app, df_plot, gdf_m,descriptions_map,gdf_p=None,cache=None ):
"""
df_plot : DataFrame analítico sem geometria
Usado para gráficos estatísticos
gdf_m : GeoDataFrame com geometria
Usado exclusivamente para mapas
gdp_p : GeoDataFrama com pontos de descartes(opcional)
cache : Flask-Caching (opcional)
"""
if cache is not None:
decorator = cache.memoize()
#print("Cache ATIVADO nos callbacks")
else:
decorator = lambda f: f
#print("Cache DESATIVADO nos callbacks")
if gdf_p is not None:
pass
@app.callback(
[Output('kpis', 'children'),
Output('descricao-variavel', 'children'), # <<< 2º OUTPUT ADICIONADO
Output('mapa', 'srcDoc'),
Output('fig_rank', 'figure'),
Output('fig_hist', 'figure'),
Output('fig_box', 'figure'),
Output('fig_scatter', 'figure')],
Input('variavel', 'value')
)
@decorator
def atualizar(var):
# métrica KPIS
kpis =kpis_out(df=df_plot,x=var)
# Descrição da variavel Dropdown
description_text = descriptions_map.get(var,"Descrição não disponível para a variável: " + str(var))
descricao_componente = html.P([description_text], style={'margin': '0'})
# Mapa
#mapa=mapa_folium(gdf=gdf_m, x=var)
mapa=mapa_folium(gdf=gdf_m, x=var,gdf_d=gdf_p)
#Rank
fig_rank=toptop_bairro(df=df_plot,x=var)
#Histograma
fig_hist=histplot_bairro_px(df=df_plot,x=var)
#Boxplot
fig_box=boxplot_bairro_px(df=df_plot,x=var)
#dispersão
fig_scatter = scatterplot_bairro_px(df=df_plot, x=var,hue_var='Risco')
# FUNDO TRANSPARENTE PARA TODOS
for fig in [fig_hist, fig_box, fig_rank, fig_scatter]:
fig.update_layout(
paper_bgcolor='rgba(0.0,0,0,0)',
plot_bgcolor='rgba(0.0,0,0,0)',
font=dict(size=12)
)
return kpis,descricao_componente,mapa._repr_html_(), fig_rank,fig_hist, fig_box, fig_scatter
return atualizar