Crie painéis interativos com Streamlit

Conteúdo

Este artigo foi publicado como parte do Data Science Blogathon.

Introdução

Em visualização de dados, Dashboard é a ótima interface gráfica do usuário que ajuda a exibir informações de uma forma altamente interativa e informativa. Ajuda a visualizar os principais indicadores e tendências de dados.

image2-9960251

Os vários gráficos, como bares, bolos, gráficos de linha, etc., ajudar a explorar o conjunto de dados e nos fornecer informações úteis. Os painéis são realmente úteis para exibir indicadores-chave de desempenho de forma eficaz. Porém, criar painéis é sempre uma tarefa tediosa para desenvolvedores.

image4-7200012

Existem algumas bibliotecas como Plotly, Bokeh em Python que permite criar uma placa. Mas não achei fácil criar um quadro perfeito. Finalmente, Eu descobri algumas maneiras fáceis de criar um painel que permite que você crie um painel bastante eficaz e informativo.

Streamlit

O Streamlit está ganhando popularidade em aprendizado de máquina e ciência de dados. É uma biblioteca muito fácil de criar uma placa perfeita gastando um pouco de tempo. Ele também vem com o servidor web integrado e permite que você implante no docker container.

Configurações do Streamlit

Vamos primeiro instalar o Streamlit em nosso sistema e executar o comando hello para verificar suas condições de funcionamento. Podemos sair do aplicativo em execução usando Ctrl + c.

$ pip install streamlit
$ olá iluminado

Abaixo está o prompt de comando, você pode ver que o aplicativo está funcionando perfeitamente.

image3-5-4724581

Quando eu executo o aplicativo, o servidor local será aberto em seu navegador automaticamente. Esta é a página inicial da estrutura de código aberto do aplicativo Streamlit.

imagem6-3-6317778

Bibliotecas de importação

Vamos importar as bibliotecas necessárias para traçar e exibir informações.

import streamlit as st
import pandas as pd
import numpy as np
import plotly.express as px
from plotly.subplots import make_subplots
import plotly.graph_objects as go
import matplotlib.pyplot as plt

Podemos exibir o texto de diferentes maneiras. Streamlit permite que você escreva o título, o cabeçalho e também suporta várias funções.

  1. st.title () – para definir o título
  2. st.text () para escrever a descrição do gráfico particular
  3. st.markdown () para exibir o texto como um desconto
  4. st.latex () para exibir expressões matemáticas no quadro.
  5. st.write () ajuda a mostrar tudo, como gráfico, quadro de dados, funções, modelo, etc.
  6. st.sidebar () é usado para exibir dados na barra lateral.
  7. st.dataframe () para exibir o quadro de dados
  8. st.map () para exibir o mapa em um código de linha única, etc.

Defina o título e a legenda da barra lateral para o painel do Streamlit

  1. st.title (“Panel de Covid-19 para India”)
  2. st.markdown (‘O painel irá visualizar a situação da Covid-19 na Índia’)
  3. st.markdown ('A doença coronavírus (COVID-19) é uma doença infecciosa causada por um coronavírus recém-descoberto. A maioria das pessoas infectadas com o vírus COVID-19 apresentam doença respiratória leve a moderada e se recuperam sem a necessidade de tratamento especial.’ Este aplicativo fornece análise de impacto em tempo real de casos confirmados, morto, ativo e recuperado de COVID-19)
  4. st.sidebar.title (“Seletor de exibição”)
  5. st.sidebar.markdown (“Selecione os gráficos / gráficos de acordo:”)

Carregue o conjunto de dados

Aqui, vamos usar o conjunto de dados COVID-19 para a visualização do painel.

DATA_URL =('E:Projetos de ciência de dadosNIELIT projectcovid_19_world.csv ')
@ st.cache(persist = True)( Se você tiver um caso de uso diferente em que os dados não mudam com tanta frequência, você pode simplesmente usar isso)

def load_data():
    data=pd.read_csv(DATA_URL)
    return data

covid_data=load_data()

Visualização de dados por caso

st.sidebar.checkbox("Análise show por Estado", Verdade, key=1)
selecionar = st.sidebar.selectbox('Selecione um Estado',df['Estado'])

#get the state selected in the selectbox
state_data = df[df['Estado'] == selecionar]
select_status = st.sidebar.radio("Estado do paciente Covid-19", ('Confirmado',
'Ativo', 'Recuperado', 'Falecido'))

Hemos utilizado la casilla de verificación para elegir el análisis por estados. Selectbox mostrará la lista de estados afectados por COVID-19. El botón de radio para elegir los casos Activo, Confirmado, Muerte o Recuperado.

Trazar el gráfico

get_total_dataframe def(conjunto de dados):
    total_dataframe = pd. DataFrame({
    'Status':['Confirmado', 'Recuperado', 'Mortes','Ativo'],
    'Número de casos':(dataset.iloc[0]['confirmado'],
    dataset.iloc[0]['recuperado'], 
    dataset.iloc[0]['Mortes'],dataset.iloc[0]['ativo'])})
    return total_dataframe

state_total = get_total_dataframe(state_data)

se st.sidebar.checkbox("Análise show por Estado", Verdade, key=2):
    st.markdown("## **Análise de nível estadual**")
    st.markdown("### Geral Confirmado, Ativo, Recuperado e " +
    "Casos mortos em %s ainda" % (selecionar))
    se não st.caixa de seleção('Gráfico de ocultação', Falso, key=1):
        state_total_graph = px.bar(
        state_total, 
        x='Status',
        y='Número de casos',
        rótulos ={'Número de casos':'Número de casos em %s' % (selecionar)},
        color ="Estado")
        st.plotly_chart(state_total_graph)

Depois de executar este código podemos selecionar os casos de acordo com o estado necessário. o método get_total_dataframe é usado para obter o conjunto de dados para traçar o gráfico para o estado selecionado.

Para traçar o gráfico, nós usamos o método plotly.express biblioteca. E finalmente, exibir o gráfico usando st.plotly_chart ().

O gráfico mostrando os casos de Maharashtra.

imagem5-5-1237804

Exibir um quadro ou tabela de dados

Também podemos visualizar o quadro de dados na visualização da tabela usando st.dataframe () e st.table ().

def get_table():
    datatable = df[['Estado', 'confirmado', 'recuperado', 'Mortes','ativo']].sort_values(por =['confirmado'], ascendente = falso)
    datatable = datatable[datatable['Estado'] != 'Estado Não Assinado']
    return datatable

datatable = get_table()
st.markdown("### Casos de Covid-19 na Índia")
st.markdown("A tabela a seguir oferece uma análise em tempo real do confirmado, ativo, casos recuperados e falecidos de Covid-19 relativos a cada estado na Índia.")
st.dataframe(datatable) # will display the dataframe
st.table(datatable)# vai exibir a mesa

imagem1-6-2052062

conclusão

Streamlit é considerada a plataforma de criação de painel de ciência de dados e aprendizado de máquina de crescimento mais rápido. É considerada uma das melhores bibliotecas de painel. Você pode experimentar diferentes conjuntos de dados para criar painéis interativos.

Assine a nossa newsletter

Nós não enviaremos SPAM para você. Nós odiamos isso tanto quanto você.