Streamlit数据仪表板创建指南

数据科学机器学习领域,将信息以高度交互和信息丰富的方式展示至关重要。这有助于可视化数据的关键指标和趋势。各种图表,如条形图、饼图、折线图等,有助于探索数据集并提供有用信息。仪表板对于有效展示关键绩效指标非常有用。然而,对于开发者来说,创建仪表板总是一项繁琐的任务。本文将帮助理解如何使用Streamlit创建仪表板,包括设置Streamlit、导入库,以及通过Streamlit示例进行更好的理解。

目录

  • Streamlit简介
  • 设置Streamlit
  • 导入库
  • Streamlit仪表板设置标题和侧边栏标题
  • 加载数据集
  • 按案例进行数据可视化
  • 绘制图表
  • 显示数据框或表格

Streamlit简介

Streamlit在机器学习数据科学领域越来越受欢迎。这是一个非常简单的库,只需花费少量时间即可创建完美的仪表板。它还内置了web服务器,并允许在Docker容器中部署。

设置Streamlit

首先,将安装Streamlit到系统中,并运行hello命令以验证其工作状态。可以通过使用Ctrl+c来退出正在运行的应用程序。

$ pip install streamlit $ streamlit hello

在命令提示符下,可以看到应用程序运行得非常完美。当运行应用程序时,localhost服务器将在浏览器中自动打开。这是Streamlit应用程序开源框架的首页。

导入库

让导入用于绘图和显示信息的必要库。

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

Streamlit允许以不同的方式显示文本。可以设置标题、标题,并支持各种函数。

st.title() - 设置标题 st.text() - 为特定图表编写描述 st.markdown() - 以Markdown格式显示文本 st.latex() - 在仪表板中显示数学表达式 st.write() - 帮助显示一切,如plotly图表、数据框、函数、模型等 st.sidebar() - 用于在侧边栏上显示数据 st.dataframe() - 显示数据框 st.map() - 仅用一行代码即可显示地图等

Streamlit仪表板设置标题和侧边栏标题

st.title("印度COVID-19仪表板") st.markdown('该仪表板将可视化印度的COVID-19情况') st.markdown('冠状病毒病(COVID-19)是由新发现的冠状病毒引起的传染病。大多数感染COVID-19病毒的人将经历轻度至中度的呼吸道疾病,并在不需要特殊治疗的情况下康复。' + '此应用程序为提供实时的影响分析,包括确诊、死亡、活跃和康复病例') st.sidebar.title("可视化选择器") st.sidebar.markdown("根据需要选择图表/图形:")

加载数据集

将使用COVID-19数据集进行仪表板可视化。

DATA_URL=('E:\Data science Projects\NIELIT project\covid_19_world.csv') @st.cache(persist=True) def load_data():     data=pd.read_csv(DATA_URL)     return data covid_data=load_data()

按案例进行数据可视化

st.sidebar.checkbox("按州显示分析", True, key=1) select = st.sidebar.selectbox('选择一个州',df['state'])

使用复选框选择按州分析。Selectbox将显示受COVID-19影响的州的列表。单选按钮用于选择活跃、确诊、死亡或康复病例。

绘制图表

def get_total_dataframe(dataset):     total_dataframe = pd.DataFrame({     '状态':['确诊', '康复', '死亡','活跃'],     '病例数量':(dataset.iloc[0]['确诊'],     dataset.iloc[0]['康复'],     dataset.iloc[0]['死亡'],dataset.iloc[0]['活跃'])})     return total_dataframe state_total = get_total_dataframe(state_data) if st.sidebar.checkbox("按州显示分析", True, key=2):     st.markdown("## **州级分析**")     st.markdown("### 总体确诊、活跃、康复和" +     "死亡病例在 %s" % (select))     if not st.checkbox('隐藏图表', False, key=1):         state_total_graph = px.bar(         state_total,          x='状态',         y='病例数量',         labels={'病例数量':'在 %s 的病例数量' % (select)},         color='状态')         st.plotly_chart(state_total_graph)

执行此代码后,可以根据需要选择的州来选择病例。get_total_dataframe方法用于获取绘制所选州图表的数据集。

绘制图表时,使用了plotly.express库的方法。最后,使用st.plotly_chart()显示图表。图表显示了马哈拉施特拉邦的病例。

def get_table():     datatable = df[['州', '确诊', '康复', '死亡','活跃']].sort_values(by=['确诊'], ascending=False)     datatable = datatable[datatable['州'] != '未分配州']     return datatable datatable = get_table() st.markdown("### 印度的COVID-19病例") st.markdown("以下表格为提供了印度各州COVID-19确诊、活跃、康复和死亡病例的实时分析。") st.dataframe(datatable) # 将显示数据框 st.table(datatable)# 将显示表格

Streamlit被认为是增长最快的机器学习数据科学仪表板构建平台。它被认为是最好的仪表板库之一。可以使用不同的数据集来创建交互式仪表板

  1. Plotly Dash是否比Streamlit更好?
  2. Streamlit的用途是什么?
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485