Como criar Dashboards com o Python?

Dashboards são extremamente úteis para criar Web Apps que permitem monitorar diversos indicadores, em tempo real e de forma automatizada. Esses painéis podem ser construídos de diversas formas e vamos mostrar no post de hoje uma introdução de como criar esse ambiente utilizando o Python em conjunto com a biblioteca Dash.

O que é um Dashboard

Um Dashboard é um painel que oferece uma interface gráfica com visualizações rápida e interativas dos principais indicadores de uma empresa, seja da parte financeira, contábil, desempenho e até mesmo de diversas outras área não relatadas a empresarial, como por exemplo, os Dashboards de monitoramento da conjuntura econômica da Análise Macro.

Existem diversas ferramentas e softwares que permitem construir um Dashboard. Aqui mostraremos como utilizar o Python para criar esses painéis.

Entre as diversas possibilidades de criação com o Python, mostraremos por meio da biblioteca Dash.

Dashboard com o Dash

A biblioteca Dash é construída em torno do Plotly.js e do React.js e permite construir e realizar o deploy de painéis interativo customizados de acordo com o usuário.

O primeiro passo para construir um Dashboard com a biblioteca é instalando ela por meio do comando:


pip install dash

O segundo passo é criar o layout. O layout basicamente descreve como o Dashboard se parece, delineando os elementos visuais (texto, cor, posição dos gráficos, tamanhos, etc) e o local onde cada elemento que contém os dados (gráficos e tabelas) se inserem no Dashboard.

Vamos construir um layout para produzir um Dashboard que possui como elemento visual um gráfico que representa relação entre o PIB per Capita dos Continentes e países com a expectativa de vida ao longo dos anos.

No IDE de escolha do usuário (aqui foi utilizado o VS Code), construa um arquivo .py chamado app. Em seguida, começamos a criação do layout dentro deste arquivo, iniciando com a importação das bibliotecas necessárias.


from dash import Dash, dcc, html, Input, Output
import plotly.express as px
import pandas as pd

Através da biblioteca Dash, são importados os módulos Dash, dcc, html, input e output, que respectivamente são utilizados para criar o servidor local; o elementos core, respectivos aos componentes de inserção (no caso do código acima, um Slider que iremos utilizar para criar a interatividade com os anos do gráficos); os elementos html do Dashboard produzido; e por fim, os elementos de input e output do Dashboard (inserção e saída dos dados). Com a biblioteca Plotly cria-se os gráficos interativos produzidos no Dashboard, e por meio do pandas, é importado os dados de formato .CSV e realizado o seu tratamento para criar o Slider e o gráfico com o Plotly.


df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminderDataFiveYear.csv')

Antes de construir o layout devemos construir o objeto app com o módulo Dash, que basicamente realiza a constituição do servidor local do Flask, ou seja, vai permitindo que o Dashboard "rode". É obrigatório a construção desse objeto, pois por meio de seus métodos construiremos o layout.

app = Dash(__name__)

Para construir o layout definitivamente dentro do app, devemos declara-lo dentro do objeto app, inserindo os elementos que desejamos adicionar. Realizamos esse procedimentos por meio da construção da página HTML com o módulo html e seu método .Div (que basicamente é um wraper do ). Dentro do Div, inserimos o texto da página (com método html.H1 e html.H2); o gráfico (com o método dcc.Graph) e o Slider, por meio do dcc.Slider. Veja que aqui construímos os dados do Slider por meio dos dados importados utilizando o pandas, enquanto o gráfico não foi criado ainda.


app.layout = html.Div([
    dcc.Graph(id='graph-with-slider'),
    dcc.Slider(
        df['year'].min(),
        df['year'].max(),
        step=None,
        value=df['year'].min(),
        marks={str(year): str(year) for year in df['year'].unique()},
        id='year-slider'
    )
])

O segundo passo é construir o callback do Dashboard de forma que seja disponibilizado os inputs, isto é, uma interatividade no front-end causando uma alteração dos dados no back-end, e que seja retornado visualmente essa mudança. Essa mudança que queremos está na alteração do ano escolhido por meio do Slider, causando uma mudança dos dados do gráfico.



@app.callback(
    Output('graph-with-slider', 'figure'),
    Input('year-slider', 'value'))
def update_figure(selected_year):
    filtered_df = df[df.year == selected_year]
    fig = px.scatter(filtered_df, x="gdpPercap", y="lifeExp",
                     size="pop", color="continent", hover_name="country",
                     log_x=True, size_max=55)
    fig.update_layout(transition_duration=500)
    return fig


Veja que no começo é definido o que estará no Output, no caso, o gráfico e no input, o Slider criado anteriormente. É dentro do callback que será construidos o gráfico definitivamente utilizando o Plotly.
Ao final, ao rodar os códigos acima, deve-se obter uma página HTML da seguinte forma:

______________________________________

Quer saber mais?

Veja nossa trilha de cursos Ciência de Dados para Economia e Finanças.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como se comportou a Taxa de Participação no Brasil nos últimos anos? Uma Análise com a Linguagem R

O objetivo deste estudo é analisar a evolução da Taxa de Participação no Brasil, contrastando-a com a Taxa de Desocupação e decompondo suas variações para entender os vetores (populacionais e de força de trabalho) que influenciam o comportamento atual do mercado de trabalho. Para isso, utilizamos a linguagem R em todo o processo, desde a coleta e o tratamento das informações até a visualização dos resultados, empregando os principais pacotes disponíveis no ecossistema da linguagem.

Como se comportou a inflação de serviços no Brasil nos últimos anos?

Uma análise econométrica da inflação de serviços no Brasil comparando os cenários de 2014 e 2025. Utilizando uma Curva de Phillips própria e estimativas da NAIRU via filtro HP, investigamos se o atual desemprego nas mínimas históricas repete os riscos do passado. Entenda como as expectativas de inflação e o hiato do desemprego explicam o comportamento mais benigno dos preços atuais em relação à década anterior.

Como se comportou o endividamento e a inadimplência nos últimos anos? Uma análise utilizando a linguagem R

Neste exercício realizamos uma análise sobre a inadimplência dos brasileiros no período recente, utilizando a linguagem R para examinar dados públicos do Banco Central e do IBGE. Investigamos a evolução do endividamento, da inadimplência e das concessões de crédito, contextualizando-os com as dinâmicas da política monetária (Taxa Selic) e do mercado de trabalho (renda e desemprego).

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.