Skip to content

[Tutorial do Streamlit] Crie rapidamente visualizações interativas de dados

Updated on

Streamlit é uma ferramenta de código aberto que permite aos desenvolvedores criar aplicativos web interativos com facilidade. Foi projetado para ajudar cientistas de dados e engenheiros a simplificar suas tarefas de visualização de dados e aprendizado de máquina. Com o Streamlit, você pode transformar scripts simples em belas aplicações web baseadas em dados com apenas algumas linhas de código.

A visualização de dados é um aspecto crucial da análise de dados. Ela nos permite compreender conjuntos de dados complexos representando-os em um formato gráfico. O Streamlit suporta vários tipos de visualizações, incluindo gráficos de barras, gráficos de linhas, plots, gráficos de pizza e histogramas. Este artigo o guiará pelo processo de criação dessas visualizações usando o Streamlit.

Crie facilmente visualizações interativas de dados no Streamlit com o PyGWalker

PyGWalker (opens in a new tab) é outra ferramenta incrível que funciona maravilhosamente como alternativa ao Streamlit AgGrid.

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

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

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


Agradecimento especial a Sven e sua excelente contribuição (opens in a new tab) à comunidade PyGWalker!

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

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

Gráfico de Barras no Streamlit

Um gráfico de barras, ou gráfico de colunas, é um gráfico que apresenta dados categóricos com barras retangulares proporcionais aos valores que eles representam. No Streamlit, a função st.bar_chart() é usada para criar gráficos de barras. É uma maneira simples e eficaz de comparar diferentes categorias de dados.

import streamlit as st
import pandas as pd
 
# Crie um dataframe de exemplo
data = pd.DataFrame({
  'Frutas': ['Maçãs', 'Laranjas', 'Bananas', 'Uvas'],
  'Quantidade': [15, 25, 35, 45]
})
 
# Crie um gráfico de barras
st.bar_chart(data)

No trecho de código acima, primeiro importamos as bibliotecas necessárias e criamos um dataframe de exemplo. Em seguida, usamos a função st.bar_chart() para criar um gráfico de barras. O gráfico automaticamente usa os índices do dataframe para o eixo x e os valores para o eixo y.

Embora a função st.bar_chart() seja fácil de usar, ela oferece opções de personalização limitadas. Para cenários mais complexos, você pode precisar usar outras bibliotecas como Matplotlib ou Plotly, que oferecem mais flexibilidade.

Gráfico de Linhas no Streamlit

Um gráfico de linhas é um tipo de gráfico que exibe informações como uma série de pontos de dados chamados 'marcadores' conectados por segmentos de linha reta. É um tipo básico de gráfico comum em muitas áreas. No Streamlit, a função st.line_chart() é usada para criar gráficos de linhas.

import streamlit as st
import pandas as pd
 
# Crie um dataframe de exemplo
data = pd.DataFrame({
  'Ano': [2018, 2019, 2020, 2021],
  'Vendas': [350, 480, 550, 680]
})
 
# Crie um gráfico de linhas
st.line_chart(data)

No trecho de código acima, criamos um dataframe de exemplo e, em seguida, usamos a função st.line_chart() para criar um gráfico de linhas. O gráfico automaticamente usa os índices do dataframe para o eixo x e os valores para o eixo y.

Os gráficos de linhas do Streamlit são fáceis de usar, mas menos personalizáveis. Para cenários mais complexos, você pode precisar usar outras bibliotecas como Matplotlib ou Plotly.

Plotagem no Streamlit

O Streamlit suporta várias bibliotecas diferentes para a criação de plots, incluindo Matplotlib, Plotly, Vega-Lite e outros. Isso permite criar uma ampla variedade de visualizações, desde gráficos de linhas simples até plots interativos complexos.

Por exemplo, você pode criar um histograma usando o Matplotlib e exibi-lo no Streamlit usando a função st.pyplot().

import streamlit as st
import matplotlib.pyplot as plt
 
import numpy as np
 
# Gere alguns dados aleatórios
data = np.random.normal(0, 1, size=100)
 
# Crie um histograma
plt.hist(data, bins=20)
 
# Exiba o gráfico no Streamlit
st.pyplot()

No trecho de código acima, primeiro geramos alguns dados aleatórios. Em seguida, criamos um histograma usando a função plt.hist() do Matplotlib. Por fim, exibimos o gráfico no Streamlit usando a função st.pyplot().

O Streamlit também suporta bibliotecas de plotagem interativas como o Plotly. Isso permite criar plots interativos em que os usuários podem ampliar, mover e passar o mouse para obter informações mais detalhadas.

Gráfico de Pizza no Streamlit

Gráficos de pizza são gráficos estatísticos circulares divididos em fatias para ilustrar proporções numéricas. Embora o Streamlit não tenha uma função embutida para criar gráficos de pizza, você pode criá-los usando outras bibliotecas como o Matplotlib e exibi-los no Streamlit usando a função st.pyplot().

import streamlit as st
import matplotlib.pyplot as plt
 
# Dados para plotagem
labels = 'Python', 'Java', 'C++', 'JavaScript'
sizes = [215, 130, 245, 210]
 
# Cria um gráfico de pizza
plt.pie(sizes, labels=labels, autopct='%1.1f%%')
 
# Exibe o gráfico no Streamlit
st.pyplot()

No trecho de código acima, primeiro definimos os dados para plotagem. Em seguida, criamos um gráfico de pizza usando a função plt.pie() do Matplotlib. Por fim, exibimos o gráfico no Streamlit usando a função st.pyplot().

Criar gráficos de pizza no Streamlit pode exigir um pouco mais de trabalho em comparação com gráficos de barras ou gráficos de linha, mas oferece mais flexibilidade e opções de personalização.

Histograma no Streamlit

Um histograma é uma representação precisa da distribuição de dados numéricos. É uma estimativa da distribuição de probabilidade de uma variável contínua. No Streamlit, você pode criar histogramas usando a função st.pyplot() em combinação com o Matplotlib.

import streamlit as st
import matplotlib.pyplot as plt
import numpy as np
 
# Gera alguns dados aleatórios
data = np.random.normal(0, 1, size=100)
 
# Cria um histograma
plt.hist(data, bins=20)
 
# Exibe o gráfico no Streamlit
st.pyplot()

No trecho de código acima, primeiro geramos alguns dados aleatórios. Em seguida, criamos um histograma usando a função plt.hist() do Matplotlib. Por fim, exibimos o gráfico no Streamlit usando a função st.pyplot().

Histogramas são uma ferramenta poderosa para visualizar a distribuição de dados. Eles podem fornecer insights sobre a dispersão geral dos dados, assimetria e curtose.

Técnicas avançadas de plotagem no Streamlit

A compatibilidade do Streamlit com várias bibliotecas de plotagem abre um mundo de possibilidades para criar visualizações avançadas. Por exemplo, você pode usar a biblioteca Plotly para criar gráficos 3D interativos, gráficos geográficos e muito mais.

import streamlit as st
import plotly.express as px
 
# Cria um gráfico de dispersão 3D
fig = px.scatter_3d(x=[1, 2, 3, 4], y=[4, 3, 2, 1], z=[1, 4, 2, 3])
st.plotly_chart(fig)

No trecho de código acima, primeiro importamos as bibliotecas necessárias. Em seguida, criamos um gráfico de dispersão 3D usando a função px.scatter_3d() do Plotly. Por fim, exibimos o gráfico no Streamlit usando a função st.plotly_chart().

Personalizando visualizações no Streamlit

O Streamlit oferece várias opções para personalizar suas visualizações. Por exemplo, você pode alterar a paleta de cores, adicionar títulos e rótulos, ajustar as escalas dos eixos e muito mais.

import streamlit as st
import matplotlib.pyplot as plt
 
# Gera alguns dados aleatórios
data = np.random.normal(0, 1, size=100)
 
# Cria um histograma com cor e título personalizados
plt.hist(data, bins=20, color='skyblue', edgecolor='black')
plt.title('Meu Histograma Personalizado')
 
# Exibe o gráfico no Streamlit
st.pyplot()

No trecho de código acima, primeiro geramos alguns dados aleatórios. Em seguida, criamos um histograma com uma cor e título personalizados. Por fim, exibimos o gráfico no Streamlit usando a função st.pyplot().

Conclusão

O Streamlit é uma ferramenta poderosa para criar visualizações interativas de dados. Com sua sintaxe simples e compatibilidade com várias bibliotecas de plotagem, você pode criar uma grande variedade de visualizações, desde gráficos de barras simples e gráficos de linha até tramas interativas complexas. Seja você um cientista de dados procurando compartilhar suas descobertas ou um desenvolvedor construindo um aplicativo da web baseado em dados, o Streamlit tem o que você precisa.

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

PyGWalker (opens in a new tab) é uma biblioteca Python que ajuda a incorporar facilmente uma interface semelhante ao Tableau em seu próprio aplicativo Streamlit de forma fácil.

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

Perguntas frequentes

1. Posso criar gráficos de pizza no Streamlit?

Embora o Streamlit não tenha uma função embutida para criar gráficos de pizza, você pode criá-los usando outras bibliotecas como o Matplotlib e exibi-los no Streamlit usando a função st.pyplot().

2. Como posso personalizar minhas visualizações no Streamlit?

O Streamlit oferece várias opções para personalizar suas visualizações. Você pode alterar a paleta de cores, adicionar títulos e rótulos, ajustar as escalas dos eixos e muito mais. As opções exatas de personalização dependem da biblioteca de plotagem que você está usando.

3. Posso criar gráficos interativos no Streamlit?

Sim, o Streamlit suporta várias bibliotecas de plotagem interativas, incluindo Plotly, Vega-Lite e outras. Isso permite que você crie gráficos interativos nos quais os usuários podem ampliar, mover e passar o mouse para obter informações mais detalhadas.