Skip to content

Streamlit e Plotly: Visualização Interativa de Dados Facilitada

No campo da ciência de dados, a visualização desempenha um papel crucial na compreensão de conjuntos de dados complexos e na extração de insights significativos. Duas ferramentas poderosas que revolucionaram esse campo são Streamlit e Plotly. Este artigo tem como objetivo fornecer um guia abrangente sobre como usar essas ferramentas juntas para criar visualizações e painéis interativos. Seja um iniciante ou um desenvolvedor experiente, você encontrará tudo o que precisa para começar com Streamlit e Plotly.

Introdução ao Streamlit e ao Plotly

Streamlit é um framework Python de código aberto que permite aos desenvolvedores criar aplicações web interativas com facilidade. Ele foi projetado para ajudar cientistas de dados e engenheiros de aprendizado de máquina a transformar scripts de dados em aplicativos web compartilháveis com apenas algumas linhas de código. A simplicidade e a flexibilidade do Streamlit tornaram-no uma escolha popular entre os profissionais de dados.

Por outro lado, o Plotly é uma biblioteca versátil que permite a criação de gráficos bonitos e interativos. Ele suporta mais de 40 tipos de gráficos únicos, abrangendo uma ampla variedade de casos de uso estatísticos, financeiros, geográficos, científicos e tridimensionais. A interatividade do Plotly oferece aos usuários a capacidade de ampliar, mover, passar o mouse e explorar as visualizações de dados, tornando a exploração de dados intuitiva e informativa.

Quando usados juntos, o Streamlit e o Plotly formam uma combinação poderosa, permitindo que os desenvolvedores criem painéis interativos com visualizações complexas com relativa facilidade.

Alternativa ao uso do Plotly no Streamlit: Use o PyGWalker:

Embora o Plotly seja uma ferramenta poderosa, ele não é a única opção disponível para visualização de dados em Python. O PyGWalker (opens in a new tab) é outra ferramenta incrível que funciona maravilhosamente como uma alternativa ao Streamlit AgGrid.

PyGWalker + Streamlit Online Demo (opens in a new tab)

PyGWalker (opens in a new tab) é uma biblioteca Python que ajuda você a incorporar facilmente uma interface semelhante ao Tableau em seu próprio aplicativo Streamlit sem esforço.

Confira este vídeo incrível produzido por Sven do Coding is Fun (opens in a new tab) demonstrando os passos detalhados para fortalecer seu aplicativo Streamlit com esta poderosa Biblioteca de Visualização de Dados Python!


Agradecimentos especiais ao Sven e sua grande contribuição (opens in a new tab) para a comunidade PyGWalker!

Além disso, você também pode conferir esses recursos:

Visualize Dados no Streamlit com PyGWalker (opens in a new tab)

Criando Visualizações Interativas com Streamlit e Plotly

Criar visualizações interativas usando o Streamlit e o Plotly é um processo simples. O primeiro passo é importar as bibliotecas necessárias em seu script Python. Aqui está um exemplo:

import streamlit as st
import plotly.express as px

Em seguida, você pode criar uma figura do Plotly e exibi-la em seu aplicativo Streamlit. Por exemplo, vamos criar um gráfico de barras simples usando o Plotly e exibi-lo no Streamlit:

## Crie um dataframe de exemplo
df = pd.DataFrame({
   'Fruta': ['Maçãs', 'Laranjas', 'Bananas', 'Maçãs', 'Laranjas', 'Bananas'],
   'Quantidade': [4, 1, 2, 2, 4, 5],
   'Cidade': ['SF', 'SF', 'SF', 'Montreal', 'Montreal', 'Montreal']
})
 
## Crie um gráfico de barras usando o Plotly
fig = px.bar(df, x='Fruta', y='Quantidade', color='Cidade', barmode='group')
 
## Exiba a figura no Streamlit
st.plotly_chart(fig)

Neste exemplo, px.bar é usado para criar um gráfico de barras e st.plotly_chart é usado para exibir o gráfico no aplicativo Streamlit. O resultado é um gráfico de barras interativo em que os usuários podem passar o mouse para ver os valores dos dados, ampliar e reduzir, e até mesmo baixar como uma imagem estática.

Técnicas Avançadas de Streamlit e Plotly

Embora criar visualizações interativas básicas com Streamlit e Plotly seja simples, essas ferramentas também oferecem recursos avançados que permitem visualizações mais complexas e personalizadas.

Um desses recursos é a capacidade de atualizar figuras do Plotly no Streamlit. Isso pode ser feito usando os métodos update_layout e update_traces no Plotly. Por exemplo, você pode atualizar o layout de uma figura para alterar seu título, rótulos dos eixos e muito mais:

fig.update_layout(
    title='Novo Título',
    xaxis_title='Novo Título do Eixo X',
    yaxis_title='Novo Título do Eixo Y',
)

Da mesma forma, você pode atualizar as linhas de uma figura para alterar as propriedades dos dados plotados, como a cor do marcador:

fig.update_traces(marker_color='rgb(158,202,225)')

Outro recurso avançado é a capacidade de resolver problemas de dimensionamento com gráficos Plotly no Streamlit. Às vezes, um gráfico Plotly pode não se encaixar bem no layout de um aplicativo Streamlit, fazendo com que ele seja cortado ou sobreposto a outros elementos. Isso pode ser resolvido ajustando os parâmetros height e width da função st.plotly_chart:

 

Neste exemplo, use_container_width=True faz com que o gráfico ocupe a largura total da coluna principal do aplicativo Streamlit, garantindo que ele se encaixe bem no layout.

Construindo um Dashboard Streamlit Plotly

Construir um dashboard com Streamlit e Plotly envolve a combinação de várias visualizações interativas e controles em um único aplicativo. Os controles, como sliders, checkboxes e select boxes, permitem que os usuários interajam com as visualizações e as atualizem em tempo real.

Aqui está um exemplo simples de um dashboard Streamlit Plotly:

import streamlit as st
import plotly.express as px
import pandas as pd
 
## Carregar os dados
df = pd.read_csv('data.csv')
 
## Adicionar uma select box para escolher o tipo de gráfico
tipo_grafico = st.selectbox('Escolha um tipo de gráfico', ['Barra', 'Linha'])
 
## Criar o gráfico
if tipo_grafico == 'Barra':
    fig = px.bar(df, x='Fruta', y='Quantidade', color='Cidade', barmode='group')
elif tipo_grafico == 'Linha':
    fig = px.line(df, x='Fruta', y='Quantidade', color='Cidade')
 
## Exibir o gráfico
st.plotly_chart(fig, use_container_width=True)

Neste exemplo, uma select box é adicionada ao aplicativo Streamlit usando st.selectbox. O valor selecionado é usado para determinar o tipo de gráfico a ser criado com o Plotly. O gráfico é então exibido no aplicativo usando st.plotly_chart.

A construção de um dashboard Streamlit Plotly pode ser tão simples ou tão complexa quanto necessário, dependendo dos requisitos do seu projeto de visualização de dados. Com a flexibilidade e poder do Streamlit e do Plotly, as possibilidades são infinitas.

Conclusão: O Poder do Streamlit e do Plotly para Visualização de Dados

Streamlit e Plotly juntos formam uma combinação poderosa para a criação de visualizações de dados interativas e dashboards. A simplicidade e flexibilidade do Streamlit o tornam uma excelente ferramenta para a construção de aplicativos web, enquanto a ampla variedade de tipos de gráficos e recursos de interatividade do Plotly o tornam uma ferramenta versátil para visualização de dados.

A integração do Streamlit e do Plotly abre um mundo de possibilidades para cientistas de dados e desenvolvedores. Desde a criação de simples gráficos de barras até a construção de dashboards complexos com várias visualizações interativas, essas ferramentas fornecem as capacidades necessárias para transformar dados em insights.

À medida que os dados continuam a desempenhar um papel cada vez mais importante em nosso mundo, ferramentas como o Streamlit e o Plotly continuarão a evoluir e melhorar. Ao se manter atualizado com essas ferramentas e aprender a utilizá-las de forma eficaz, você pode aprimorar suas habilidades de visualização de dados e criar visualizações mais impactantes e esclarecedoras.

Você já ouviu falar dessa incrível ferramenta de Análise e Visualização de Dados, que transforma seu aplicativo Streamlit em um Tableau?

PyGWalker (opens in a new tab) é uma biblioteca Python que ajuda você a incorporar facilmente uma interface semelhante ao Tableau em seu próprio aplicativo Streamlit, sem esforço.

PyGWalker para visualização de dados no Streamlit (opens in a new tab)

Perguntas Frequentes

1. Como posso exibir um gráfico Plotly interativo no Streamlit?

Você pode exibir um gráfico Plotly interativo no Streamlit usando a função st.plotly_chart. Primeiro, crie um gráfico Plotly e, em seguida, passe-o para st.plotly_chart para exibi-lo em seu aplicativo Streamlit. O resultado é um gráfico interativo que os usuários podem passar o mouse, aproximar e afastar e até mesmo baixar como uma imagem estática.

2. Como posso atualizar um gráfico Plotly no Streamlit?

Você pode atualizar um gráfico Plotly no Streamlit usando os métodos update_layout e update_traces no Plotly. O método update_layout permite que você altere o layout do gráfico, como o título e os rótulos dos eixos. O método update_traces permite que você altere as propriedades dos dados plotados, como a cor do marcador.

3. Como posso evitar problemas de dimensionamento com gráficos Plotly no Streamlit?

Você pode evitar problemas de dimensionamento com gráficos Plotly no Streamlit ajustando os parâmetros height e width da função st.plotly_chart. Por exemplo, definir use_container_width=True faz com que o gráfico ocupe a largura total da coluna principal do aplicativo Streamlit, garantindo que ele se encaixe bem no layout.