在Python中快速创建交互式仪表板

2020-07-05 15:23:12

仪表板提供了一个图形界面来可视化您的数据的关键指标和趋势。然而,对于开发人员来说,创建Dashboard始终是一项繁琐的任务。

他们必须戴着前端开发人员的帽子才能创建Web仪表板。并不是所有的开发人员都喜欢从python转换到Javscript/HTML。

有像Ploly Dash、Python中的Bokeh这样的库,可以让您使用Python生成仪表板,甚至有些人可以将Jupyter笔记本转换为仪表板。

不知何故,我并没有发现所有这些选项都是用Python创建仪表板的简单可用选项,所以我继续寻找用纯Python创建易于使用和用户友好的库,最后我找到了更简单的方法来做到这一点。

是的,Streamlight最近在机器学习和数据科学领域越来越受欢迎,它是一个超级容易的库,几乎可以在任何时间内开发一个仪表盘。

好的一面是它也有一个内置的Web服务器,可以很容易地部署在一个码头容器中。

在本教程中,我们将使用COVID19US数据构建仪表板。以下是您将在教程结束时看到的仪表板快照。

我们将对此仪表板使用维基百科数据。以下是您可以下载的两组数据:

撰写本文时美国新冠肺炎病例最近15天的数据,即2020年6月19日至2020年7月7日的数据。

我们将在两个CSV文件中下载这两个数据,并将其重命名为usa_covid_data_states.csv和usa_total_cases.csv。

现在,要开始创建仪表板,让我们首先创建一个简单的python文件main.py,然后导入Streamlight并在仪表板开始处添加标题和段落。

我们还将导入熊猫以读取使用维基百科数据创建的上述两个CSV文件。

Streamlight有多种方式可以将文本添加到您的应用程序中。让我们向Dashboard添加一个标题。我们还将使用标记来添加潜台词或小段落,并在仪表板中编写内容。

圣彼得堡。标题(#34;Covid19美国数据,来自维基百科)。Markdown(";";";此应用程序用于可视化从维基百科网站https://en.wikipedia.org/wiki/COVID-19_pandemic_in_the_United_States.收集的美国Covid19数据。用户可以从下拉列表中选择指标类型以查看最近15天的趋势";";";)。

使用st.selectbox从系列中进行选择。您可以写入所需的选项,也可以传递数组或数据框列。

圣彼得堡。降价(#34;##&34;+';总案例/死亡/恢复趋势';)st。markdown(";#";+";您希望看到什么趋势?";)selected_metrics=st。选择框(Label=";Choose.";,Options=[';TotalCases';,';Death';,';Recovery';])

因此,我们创建了上面的下拉列表,并希望根据用户选择显示TotalCases/Death/Recovery趋势。

我们直接使用dataframe列作为x和y数据,用于根据用户选择添加轨迹,您可以使用st.plotly_chart()轻松地将图表添加到您的应用程序中。

#创建轨迹图=转到。图()if select_metrics==';TotalCases';:图。ADD_TRACE(转到。散射(x=df。日期,y=df。TotalCases,mode=';line';,name=';TotalCases';)如果SELECTED_METRICS=';死亡';:图。ADD_TRACE(转到。散射(x=df。日期,y=df。死亡,模式=';标记';,名称=';死亡';))如果SELECTED_METRICS=';恢复';:图。ADD_TRACE(转到。散射(x=df。日期,y=df。恢复,模式=';行+标记';,名称=';恢复';))st。PLOTY_CHART(图,USE_CONTAINER_WIDTH=True)。

StreamList的另一个很好的功能是侧边栏,它可以让你的应用程序看起来更整洁,并保持你的应用程序的中心,所有的小部件都可以移到页面的左边。让我们看看如何使用st.side bar为州创建侧栏小部件和下拉筛选器。

打开终端并导航到main.py所在的路径,然后启动Streamlight Web服务器。

默认情况下,它将在端口8501上运行。打开您的浏览器,然后单击此URL http://localhost:8501以在浏览器中查看您的仪表板。

至此,我们已经完成了使用Streamlight创建Covid19US仪表板的教程。如果您希望对此仪表板进行任何自定义,那么我建议您查看官方Streamlight文档。

我们还可以在码头容器中部署Streamlight应用程序。如果有任何与配置相关的更改,如更改路径的基本url,则这些更改也可以在docker文件中完成。

下面是Docker文件,该文件位于main.py所在的同一文件夹中。

来自python:3.7#公开Streamlight Exposure 8501的默认端口#Making directory of app WORKDIR/Streamlight-docker#copy over requirements copy requirements.txt./requirements.txt#安装所需的软件包运行PIP3 install-r requirements.txt#将所有应用程序文件复制到映像副本。。#cmd在运行容器时启动应用程序cmd Streamlight运行main.py#Streamlight-特定于config ENV LC_ALL=C.UTF-8 ENV lang=C.UTF-8的命令运行mkdir-p/root/.Streamlight运行bash-c";\[常规]\n\email=\";\n\";>;/root/.Streamlight/redentials.tom.。\[服务器]\n\baseUrlPath=\";coviddash\";\n\";>;/root/.Streamlight/config.toml';

我们已经看到Streamlight可以用来构建漂亮的、交互式的仪表板和Web应用程序,所有这些都没有Web开发经验!我们已经了解了如何在不到100行的Python代码中加载、浏览、可视化和与数据交互,以及生成仪表板。

最终,我们可以在不使用任何外部Web服务器的情况下运行这个Web应用程序,因为它有自己的由Tornado驱动的服务器。在码头容器中部署也很容易。

我认为这是可视化机器学习算法和创建Dashbaord on the Go选项的最快、最简单的方法,Python开发人员现在可以使用该选项