Search
Close this search box.
Web apps com Streamlit e seus comandos mágicos
streamlit web app

Posts Relacionados:

Streamlit transforma códigos Python em web apps em alguns minutos. Conheça seus comandos mágicos e exiba dados, gráficos e textos em aplicações web facilmente.

Receba nossa newsletter

Web Apps com Streamlit

Streamlit transforma códigos de dados em web apps compartilháveis em poucos minutos. Tudo isso escrito em Python puro. Não é necessário ter experiência com frontend e nem com backend 😀😃🤪.

A arquitetura do Streamlit permite que você escreva aplicativos da mesma forma que escreve scripts Python. Para desbloquear isso, os aplicativos Streamlit têm um fluxo de dados exclusivo: sempre que alguma coisa precisa ser atualizada na tela, o Streamlit reexecuta todo o seu código Python de cima para baixo.

Mas como usar essa maravilha? Este é o tema que começamos a explorar passo a passo neste post. Na postagem de hoje, nos concentraremos especificamente em como usar o Streamlit para exibir dados (textos, imagens, planilhas, graficos, etc) em web apps com comandos mágicos.

Comandos Mágicos (Magic Commands)

Os comandos mágicos Streamlit são um atalho para escrever elementos comuns em uma aplicação web. Eles permitem a exibição de praticamente qualquer coisa (markdown, dados, gráficos) num app sem ter que digitar nenhum comando específico. Basta escrever o que você deseja mostrar em seu código e o elemento aparecerá em seu app. Veja como isso funciona com exemplos.

Para exibir textos formatados com markdown, você só precisa adicionar a notação do Python para strings, como mostrado abaixo.

import streamlit as st
'''
    # :red[Streamlit] :orange[pode] :green[escrever] :blue[textos] :violet[em]
    # :gray[várias] :rainbow[cores] e :blue-background[também] :blue-background[pode]
    # :blue-background[destacar] :rainbow[texto].
'''

Quando esse código é executado, você obtém esse resultado no navegador:

streamlit Python web app

Comandos mágicos para exibir dados numéricos

A mesma lógica mostrada acima serve para mostrar dados numéricos como DataFrames do pandas. Nesse caso, basta definir um DataFrame e chamá-lo. Dando sequência ao código anterior, o DataFrame foi incluído assim:

import pandas as pd
'''
## Meu DataFrame Pandas
'''
df = pd.DataFrame({
  'Primeira Coluna': [1, 2, 3, 4],
  'Segunda Coluna': [4, 5, 6, 7]
})

df

No navegador, ele aparece assim:

streamlit pandas

O mesmo procedimento pode ser usado para exibir NumPy arrays. Veja um exemplo prático (escrito como continuidade do código acima):

import numpy as np

'''
## Meu Array Aleatório Feito Com NumPy
'''
array_np = np.random.rand(5,5)
array_np

'''
streamlit NumPy

Comandos mágicos e gráficos

Melhor ainda, os comandos mágicos do Streamlit exibem gráficos completos em web apps sem precisar de nenhum comando específico para isso. Os gráficos podem ser do Matplotlib ou de outras bibliotecas Python como Altair e Seaborn. Veja um exemplo abaixo (o plot veio direto daqui, o comando mágico do Streamlit aparece apenas no final).

import matplotlib.pyplot as plt
import matplotlib as mpl

X, Y = np.meshgrid(np.linspace(-3, 3, 128), np.linspace(-3, 3, 128))
Z = (1 - X/2 + X**5 + Y**3) * np.exp(-X**2 - Y**2)

data1, data2, data3, data4 = np.random.randn(4, 100)
x = np.arange(len(data1))

fig, axs = plt.subplots(2, 2, layout='constrained')
pc = axs[0, 0].pcolormesh(X, Y, Z, vmin=-1, vmax=1, cmap='RdBu_r')
fig.colorbar(pc, ax=axs[0, 0])
axs[0, 0].set_title('pcolormesh()')

co = axs[0, 1].contourf(X, Y, Z, levels=np.linspace(-1.25, 1.25, 11))
fig.colorbar(co, ax=axs[0, 1])
axs[0, 1].set_title('contourf()')

pc = axs[1, 0].imshow(Z**2 * 100, cmap='plasma',
                          norm=mpl.colors.LogNorm(vmin=0.01, vmax=100))
fig.colorbar(pc, ax=axs[1, 0], extend='both')
axs[1, 0].set_title('imshow() with LogNorm()')

pc = axs[1, 1].scatter(data1, data2, c=data3, cmap='RdBu_r')
fig.colorbar(pc, ax=axs[1, 1], extend='both')
axs[1, 1].set_title('scatter()')
fig

Esse é o gráfico no nosso web app.

streamlit matplotlib

Por causa dessa facilidade para exibir gráficos e dados numéricos, o Streamlit é extremamente popular para a criação de dashboards e aplicativos com técnicas de ciências de dados e IA.

Imagem com IA Generativa – Dia 278

IA generativa img278

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial