使用Streamlit和Python创建交互式仪表板
有一些库,例如Python中的Plotly,Bokeh,可让您创建仪表板。但是我发现创建一个完美的仪表盘并不容易。最后,我找到了创建仪表盘的一些简单方法,使您可以创建一个非常有效且信息丰富的仪表盘。
流光
Streamlit在
机器学习和数据科学领域越来越受欢迎。这是一个非常容易的库,只需花费少量时间即可创建完美的仪表板。它还带有内置的网络服务器,可让您在Docker容器中进行部署。
设置Streamlit
首先,将Streamlit安装到我们的系统中,然后运行hello命令以验证其工作状态。我们可以使用Ctrl + c退出正在运行的应用程序。
$ pip install streamlit
$ streamlit你好
下面是命令提示符,您可以看到该应用程序运行正常。
streamlit-命令提示符
运行该应用程序时,本地主机服务器将在浏览器中自动打开。这是Streamlit应用程序开源框架的主页。
流式-欢迎屏幕
导入库
让我们导入用于绘图和显示信息的必要库。
导入streamlit为st
将熊猫作为pd导入
将numpy导入为np
导入plotly.express为px
从plotly.subplots导入make_subplots
导入plotly.graph_objects
导入matplotlib.pyplot作为plt
我们可以用不同的方式显示文本。Streamlit允许您编写标题,标题,还支持各种功能。
st.title()-设置标题
st.text()编写特定图形的描述
st.markdown()将文本显示为markdown
st.latex()在仪表板上显示数学表达式。
st.write()有助于显示所有内容,例如绘图图,数据框,函数,模型等。
st.sidebar()用于在边栏上显示数据。
st.dataframe()显示数据框
st.map()以仅一行代码显示地图等
设置Streamlit仪表板的标题和侧边栏标题
st.title(“ Covid-19印度仪表盘”)
st.markdown(“仪表板将显示Covid-19印度的情况”)
st.markdown('冠状病毒病(COVID-19)是由新发现的冠状病毒引起的传染病。大多数感染了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():
数据= pd.read_csv(DATA_URL)
返回数据
covid_data = load_data()
案例数据可视化
st.sidebar.checkbox(“按状态显示分析”,True,键= 1)
select = st.sidebar.selectbox('选择一个州',df ['州'])
#获取在选择框中选择的状态
state_data = df [df ['state'] ==选择]
select_status = st.sidebar.radio(“ Covid-19患者的状态”,(“已确认”,
“有效”,“已恢复”,“已故”))
我们使用复选框来按状态选择分析。选择框将显示受COVID-19影响的状态列表。单选按钮,选择有效,已确认,死亡或已恢复的案例。
绘制图形
def get_total_dataframe(dataset):
total_dataframe = pd.DataFrame({
'状态':['已确认','已恢复','死亡','活跃'],
“案件数”:(dataset.iloc [0] ['confirmed'],
dataset.iloc [0] ['recovered'],
Dataset.iloc [0] ['deaths]],dataset.iloc [0] ['active'])})
返回total_dataframe
state_total = get_total_dataframe(state_data)
如果st.sidebar.checkbox(“按状态显示分析”,True,键= 2):
st.markdown(“ ## **状态级别分析**”)
st.markdown(“ ###总体确认,有效,已恢复和” +
“%s中尚未处理的案件”%(选择)
如果不是st.checkbox('Hide Graph',False,key = 1):
state_total_graph = px.bar(
state_total,
x ='状态',
y ='案件数',
标签= {'案件数':'%s中的案件数'%(select)},
color ='状态')
st.plotly_chart(state_total_graph)
执行完此代码后,我们可以根据所需状态选择案例。方法get_total_dataframe用于获取数据集,以绘制选定状态的图。
为了绘制图形,我们使用了plotly.express库方法。最后,使用st.plotly_chart()显示该图。
该图显示了马哈拉施特拉邦的案件。
马哈拉施特拉邦案件
显示数据框或表
我们还可以使用st.dataframe()和st.table()在表视图中查看数据框。
def get_table():
datatable = df [[''state','confirmed','recovered','deaths,'active']]。sort_values(by = ['confirmed'],ascending = False)
datatable = datatable [datatable ['state']!='未分配状态']
返回数据表
数据表= get_table()
st.markdown(“印度有### Covid-19个案例”)
st.markdown(“下表为您提供了与印度各州有关的Covid-19确诊,现役,康复和死者案件的实时分析。”)
st.dataframe(datatable)#将显示数据框
st.table(datatable)#将显示表格
印度的州立共谋案件
结论
Streamlit被认为是增长最快的机器学习和数据科学仪表板构建平台。它被认为是最好的仪表板库之一。您可以尝试使用不同的数据集来创建交互式仪表板。
题库