太实用了!4种方法教你轻松制作交互式仪表板!
让客户深刻记住你的数据洞察和发现的最好方式,是创建交互式仪表板。为什么要互动呢?一方面是比较有趣,另一方面是客户对动作的记忆比静态的洞察力更深刻。
在本文中,我给大家分享 4 款 Python 工具包,使用它们为数据科学项目创建交互式仪表板非常的棒。喜欢本文记得收藏、关注、点赞。
1、WidgetsIpywidgets(缩写为 Widgets) 是一个代码简单直观的交互式包,它为 Jupyter Notebooks 中的 GUI 提供 HTML 架构。
该包允许我们直接在 Jupyter Notebook 单元中创建交互式仪表板。
只需几行代码,你就可以将 Jupyter Notebook 改为仪表板。让我用几行代码展示如何做到这一点。
首先,我们需要安装所需的包
pipinstallipywidgets
然后,我们需要在 Jupyter Notebook 中启用 Ipywidgets。要启用它,请在命令提示符中传递以下代码。
jupyternbextensionenable--pywidgetsnbextension
我们可以在 Jupyter Notebook 中创建交互式仪表板,并配备所有必要的软件包。我将使用泰坦尼克号样本数据进行举例。
importseabornassnstitanic=sns.load_dataset("titanic")titanic.head()
我想创建一个交互式仪表板,获取按类别变量分组的泰坦尼克号票价平均值。在这种情况下,使用如下代码:
#Creatingtheinteractivedashboardfromipywidgetsimportinteract@interactdefcreate_fare_plot(col=titanic.drop(["fare","age"],axis=1).columns):sns.barplot(data=titanic,x=col,y="fare")plt.title(f"MeanBarPlotoftheFaregroupedbythe{col}")
通过添加@interact代码,我们启动了交互过程。
2、VoilaVoila-dashboards 是一个简单的 Python 包,它将一个简单的 Jupyter Notebook 变成一个漂亮的 Web 仪表板。
只需一行安装代码,我们就可以快速渲染 Jupyter Notebook。
让我们安装 Voila-dashboards
pipinstallvoila
完成 Voila 包的安装后,刷新 Jupyter Notebook 并查看 notebook 选项卡。在那里你会发现一个新的 Voila 按钮。现在按下按钮,即可自动生成 Voila 仪表板。
3、Dash by PlotlyDash by Plotly 是一个开源 Python 包,它是基于 Plotly 可视化的低代码框架包。
要试用 Dash,先安装软件包。
pipinstalldash
安装完成后,我将使用以下代码创建一个简单的 Titanic 仪表板。
importdashfromdashimportdcc,htmlimportplotly.expressaspximportpandasaspdimportseabornassnsapp=dash.Dash()df=sns.load_dataset("titanic")fig=px.scatter(df,x="fare",y="age",size="pclass",color="alive",hover_name="embark_town",log_x=True,size_max=60)app.layout=html.Div(children=[html.H1(children="TitanicDashboard"),dcc.Graph(id="fare_vs_age",figure=fig)])if__name__=="__main__":app.run_server(debug=True)
运行上述代码后,将在默认(http://127.0.0.1:8050/)中启动仪表板我们可以添加一个回调交互来让用户输入具有特定的输出。
importdashfromdashimportdcc,html,Input,Outputimportplotly.expressaspximportpandasaspdimportseabornassnsapp=dash.Dash()df=sns.load_dataset("titanic")fig=px.scatter(df,x="fare",y="age",size="pclass",color="alive",hover_name="embark_town",log_x=True,size_max=60)app.layout=html.Div(children=[html.H1(children="TitanicDashboard"),dcc.Graph(id="fare_vs_age",figure=fig),#Addinteractivecallbackherehtml.H4("Changethevalueinthetextboxtoseecallbacksinaction"),html.Div(["Input:",dcc.Input(id="my-input",value="initialvalue",type="text")]),html.Br(),html.Div(id="my-output"),])@app.callback(Output(component_id="my-output",component_property="children"),Input(component_id="my-input",component_property="value"))defupdate_output_div(input_value):returnf"Output:{input_value}"if__name__=="__main__":app.run_server(debug=True)
Dash by Plotly 在创建仪表板时非常方便,它提供了许多有用的 API。
4、StreamlitStreamlit 是一个开源 Python 包,旨在为数据科学家和机器学习项目创建一个 Web 应用程序。Streamlit 提供的 API 易于任何初学者使用,非常适合希望以交互方式构建其数据组合的任何人。
让我们先安装 Streamlit 包。
pipinstallstreamlit
安装过程完成后,我们可以创建交互式仪表板。
让我给你下面的代码示例。
importstreamlitasstimportpandasaspdimportplotly.expressaspximportseabornassnsdf=sns.load_dataset("titanic")st.title("TitanicDashboard")st.subheader("Dataset")st.dataframe(df)st.subheader("DataNumericalStatistic")st.dataframe(df.describe())st.subheader("DataVisualizationwithrespecttoSurvived")left_column,right_column=st.columns(2)withleft_column:"NumericalPlot"num_feat=st.selectbox("SelectNumericalFeature",df.select_dtypes("number").columns)fig=px.histogram(df,x=num_feat,color="survived")st.plotly_chart(fig,use_container_width=True)withright_column:"Categoricalcolumn"cat_feat=st.selectbox("SelectCategoricalFeature",df.select_dtypes(exclude="number").columns)fig=px.histogram(df,x=cat_feat,color="survived")st.plotly_chart(fig,use_container_width=True)
使用 VScode 将文件保存为 titanic_st.py,然后在终端中运行该代码。
streamlitruntitanic_st.py
Streamlit 在上述地址上运行,我们可以访问我们的仪表板。
使用上面的简单代码,我们创建了一个交互式仪表板,API 并不难理解,我们只使用最少数量的代码。
结论当我们需要展示数据科学项目时建议用交互式仪表板,它将改善大大改善用户体验。
长按或扫描下方二维码,后台回复:加群,即可申请入群。一定要备注:来源+研究方向+学校/公司,否则不拉入群中,见谅!
(长按三秒,进入后台)
相关阅读
-
世界热推荐:今晚7:00直播丨下一个突破...
今晚19:00,Cocos视频号直播马上点击【预约】啦↓↓↓在运营了三年... -
NFT周刊|Magic Eden宣布支持Polygon网...
Block-986在NFT这样的市场,每周都会有相当多项目起起伏伏。在过去... -
环球今亮点!头条观察 | DeFi的兴衰与...
在比特币得到机构关注之后,许多财务专家预测世界将因为加密货币的... -
重新审视合作,体育Crypto的可靠关系才能双赢
Block-987即使在体育Crypto领域,人们的目光仍然集中在FTX上。随着... -
简讯:前端单元测试,更进一步
前端测试@2022如果从2014年Jest的第一个版本发布开始计算,前端开发... -
焦点热讯:刘强东这波操作秀
近日,刘强东发布京东全员信,信中提到:自2023年1月1日起,逐步为...