在数据科学和机器学习领域,将信息以高度交互和信息丰富的方式展示至关重要。这有助于可视化数据的关键指标和趋势。各种图表,如条形图、饼图、折线图等,有助于探索数据集并提供有用信息。仪表板对于有效展示关键绩效指标非常有用。然而,对于开发者来说,创建仪表板总是一项繁琐的任务。本文将帮助理解如何使用Streamlit创建仪表板,包括设置Streamlit、导入库,以及通过Streamlit示例进行更好的理解。
Streamlit在机器学习和数据科学领域越来越受欢迎。这是一个非常简单的库,只需花费少量时间即可创建完美的仪表板。它还内置了web服务器,并允许在Docker容器中部署。
首先,将安装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() - 仅用一行代码即可显示地图等
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被认为是增长最快的机器学习和数据科学仪表板构建平台。它被认为是最好的仪表板库之一。可以使用不同的数据集来创建交互式仪表板。