让客户深刻记住你的数据洞察和发现的最好方式,是创建交互式仪表板。为什么要互动呢?一方面是比较有趣,另一方面是客户对动作的记忆比静态的洞察力更深刻。

在本文中,我给大家分享 4 款 Python 工具包,使用它们为数据科学项目创建交互式仪表板非常的棒。喜欢本文记得收藏、关注、点赞。

文末提供技术交流方式

1、Widgets

Ipywidgets(缩写为 Widgets) 是一个代码简单直观的交互式包,它为 Jupyter Notebooks 中的 GUI 提供 HTML 架构。

该包允许我们直接在 Jupyter Notebook 单元中创建交互式仪表板。

只需几行代码,你就可以将 Jupyter Notebook 改为仪表板。让我用几行代码展示如何做到这一点。

首先,我们需要安装所需的包

pip install ipywidgets

然后,我们需要在 Jupyter Notebook 中启用 Ipywidgets。要启用它,请在命令提示符中传递以下代码。

jupyter nbextension enable --py widgetsnbextension

我们可以在 Jupyter Notebook 中创建交互式仪表板,并配备所有必要的软件包。我将使用泰坦尼克号样本数据进行举例。

import seaborn as sns
titanic = sns.load_dataset('titanic')
titanic.head()

我想创建一个交互式仪表板,获取按类别变量分组的泰坦尼克号票价平均值。在这种情况下,使用如下代码:

#Creating the interactive dashboard
from ipywidgets import interact
@interact
def create_fare_plot(col = titanic.drop(['fare', 'age'], axis =1).columns):sns.barplot(data = titanic, x = col, y ='fare')plt.title(f'Mean Bar Plot of the Fare grouped by the {col}')

通过添加@interact代码,我们启动了交互过程。

2、Voila

Voila-dashboards 是一个简单的 Python 包,它将一个简单的 Jupyter Notebook 变成一个漂亮的 Web 仪表板。

只需一行安装代码,我们就可以快速渲染 Jupyter Notebook。

让我们安装 Voila-dashboards

pip install voila

完成 Voila 包的安装后,刷新 Jupyter Notebook 并查看 notebook 选项卡。在那里你会发现一个新的 Voila 按钮。现在按下按钮,即可自动生成 Voila 仪表板。

3、Dash by Plotly

Dash by Plotly 是一个开源 Python 包,它是基于 Plotly 可视化的低代码框架包。

要试用 Dash,先安装软件包。

pip install dash

安装完成后,我将使用以下代码创建一个简单的 Titanic 仪表板。

import dash
from dash import dcc, html
import plotly.express as px
import pandas as pd
import seaborn as sns
app = 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='Titanic Dashboard'),
dcc.Graph(id="fare_vs_age", figure=fig)])if __name__ == "__main__":app.run_server(debug=True)

运行上述代码后,将在默认(http://127.0.0.1:8050/)中启动仪表板我们可以添加一个回调交互来让用户输入具有特定的输出。

import dash
from dash import dcc, html, Input, Output
import plotly.express as px
import pandas as pd
import seaborn as sns
app = 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='Titanic Dashboard'),
dcc.Graph(id="fare_vs_age", figure=fig),
#Add interactive callback here
html.H4("Change the value in the text box to see callbacks in action"),
html.Div([
"Input: ",
dcc.Input(id='my-input', value='initial value', 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')
)
def update_output_div(input_value):return f'Output: {input_value}'
if __name__ == "__main__":app.run_server(debug=True)

Dash by Plotly 在创建仪表板时非常方便,它提供了许多有用的 API。

4、Streamlit

Streamlit 是一个开源 Python 包,旨在为数据科学家和机器学习项目创建一个 Web 应用程序。Streamlit 提供的 API 易于任何初学者使用,非常适合希望以交互方式构建其数据组合的任何人。

让我们先安装 Streamlit 包。

pip install streamlit

安装过程完成后,我们可以创建交互式仪表板。

让我给你下面的代码示例。

import streamlit as st
import pandas as pd
import plotly.express as px
import seaborn as sns
df = sns.load_dataset('titanic')
st.title('Titanic Dashboard')
st.subheader('Dataset')
st.dataframe(df)
st.subheader('Data Numerical Statistic')
st.dataframe(df.describe())
st.subheader('Data Visualization with respect to Survived')
left_column, right_column = st.columns(2)
with left_column:'Numerical Plot'num_feat = st.selectbox('Select Numerical Feature', df.select_dtypes('number').columns)fig = px.histogram(df, x = num_feat, color = 'survived')st.plotly_chart(fig, use_container_width=True)
with right_column:'Categorical column'cat_feat = st.selectbox('Select Categorical Feature', 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,然后在终端中运行该代码。

streamlit run titanic_st.py

Streamlit 在上述地址上运行,我们可以访问我们的仪表板。

使用上面的简单代码,我们创建了一个交互式仪表板,API 并不难理解,我们只使用最少数量的代码。

结论

当我们需要展示数据科学项目时建议用交互式仪表板,它将改善大大改善用户体验。

推荐文章

  • 李宏毅《机器学习》国语课程(2022)来了

  • 有人把吴恩达老师的机器学习和深度学习做成了中文版

  • 上瘾了,最近又给公司撸了一个可视化大屏(附源码)

  • 如此优雅,4款 Python 自动数据分析神器真香啊

  • 梳理半月有余,精心准备了17张知识思维导图,这次要讲清统计学

  • 年终汇总:20份可视化大屏模板,直接套用真香(文末附源码)

技术交流

欢迎转载、收藏、有所收获点赞支持一下!数据、代码可以找我获取

目前开通了技术交流群,群友已超过2000人,添加时最好的备注方式为:来源+兴趣方向,方便找到志同道合的朋友

  • 方式①、发送如下图片至微信,长按识别,后台回复:加群;
  • 方式②、添加微信号:dkl88191,备注:来自CSDN
  • 方式③、微信搜索公众号:Python学习与数据挖掘,后台回复:加群

太实用啦,4种方法教你轻松制作交互式仪表板相关推荐

  1. 那个软件弹出广告_如何关闭烦人的电脑弹窗广告?5种方法教你轻松解决

    如果要问大家在使用电脑的过程中让人最反感的是什么,我想许多人的回答都会是弹窗广告.一些软件为了给自己创收,完全不顾用户的使用体验,在软件中强行加入广告弹窗模块.这些弹窗广告不仅让人在视觉上烦不胜烦,而 ...

  2. Android电视kodi安装失败,电视提示“解析包出现错误” ?四种方法教你轻松解决...

    原标题:电视提示"解析包出现错误" ?四种方法教你轻松解决 日常生活中,我们经常会遇到智能电视提示:解析包时出现错误.遇到这样的问题,不要抓狂,小智教你轻松解决. 首先,我们要清楚 ...

  3. layer 关闭一个弹窗打不开新的的弹窗_如何关闭烦人的电脑弹窗广告?5种方法教你轻松解决...

    如果要问大家在使用电脑的过程中让人最反感的是什么,我想许多人的回答都会是弹窗广告.一些软件为了给自己创收,完全不顾用户的使用体验,在软件中强行加入广告弹窗模块.这些弹窗广告不仅让人在视觉上烦不胜烦,而 ...

  4. 无法从计算机选择图片,碰到“照片无法读取”,2种方法教你轻松修复受损照片...

    原标题:碰到"照片无法读取",2种方法教你轻松修复受损照片 日常生活中,如果我们发现无法在计算机上正常查看照片, 这就表示该照片无法读取.导致这种情况发生的原因有很多,可能与软件相 ...

  5. android 8 忘记图案,手机绘图解锁忘了怎么办?三种方法教你轻松搞定

    现在市场上的智能手机基本上都带有九宫格锁屏,这样的设计受到了广大用户们的喜爱,渐渐的成为了用户们的不二选择,当然这个锁屏的优点有很多,但是唯一不足的地方就是一旦忘记图案密码就会让人想抓狂.手机绘图解锁 ...

  6. 刷magisk模块后不能开机_刷Magisk模块开机卡Logo了怎么办?两种方法教你轻松解决...

    虽然,Magisk由于工作原理的不同,其模块对系统的兼容性相比较于此前的Xposed框架模块要好得多,但是依旧有可能出现刷了模块之后,卡Logo,无法开机的情况.今天,小编就提供两种方式解决刷Magi ...

  7. 小米2s自带rec刷root_刷Magisk模块开机卡Logo了怎么办?两种方法教你轻松解决

    虽然,Magisk由于工作原理的不同,其模块对系统的兼容性相比较于此前的Xposed框架模块要好得多,但是依旧有可能出现刷了模块之后,卡Logo,无法开机的情况.今天,小编就提供两种方式解决刷Magi ...

  8. 超实用!6种方法教你轻松删除Word空白页

    在日常工作中,我们完成了文档编辑,经常会出现一个或者多个空白页,上面没有任何内容,却删不掉,这种问题让很多人感到头疼,今天小编整理了以下几种方法,轻松删除文档中的空白页,提高工作效率. 文档中出现空白 ...

  9. 几种方法教你轻松解决电脑弹窗广告

    方法一 步骤一: 电脑右键选择"管理",弹出如下: 步骤二: 选择"任务计划程序",双击任务计划程序库,可看到很多"名称+状态+触发器" 步 ...

最新文章

  1. 【建站系列教程】2.3、分享一些小说的api接口
  2. 假如我是陈一舟--我的大社交生态系统战略
  3. 全景图拍摄_全景效果图制作软件如何选择?全景图拍摄有哪些步骤?
  4. 1_1 FactoryMode 工厂模式
  5. Android之RxPermissions用kotlin写没反应
  6. linux把2块盘挂到一个分区,linux系统如何挂载第二块硬盘
  7. VC嵌入python时debug版lib下载
  8. 猫狗动物声音模拟器微信小程序源码
  9. 面试题:请介绍⼀下 JMM(Java 内存模型)
  10. pycharm使用心得
  11. 携程“线上摆摊”:1晚赚3105万
  12. Linux编辑firmware的文件,Linux中request_firmware 的用法
  13. 专业英语(电子、通信)单词集
  14. 【大地信】新时代GIS发展趋势与未来展望
  15. 计算机flash听课记录范文,听课记录范文
  16. 第8章 SMS--短信服务
  17. 关于条码和标签打印以及条码打印机编程
  18. 作为一个大学生如何自学计算机编程
  19. Java Web之JSP技术
  20. 域名和URL是什么?域名和IP是一一对应的吗?

热门文章

  1. 影集制作php源码_最新仿720全景在线制作云平台网站PHP源码
  2. 攻防世界 Reverse高手进阶区 2分题 reverse-for-the-holy-grail-350
  3. 打散线条lisp_cad细线模式(cad中宽线炸开后变成细线是怎么回事)
  4. 魔性!Python生成全网爆火的“蚂蚁呀嘿”
  5. 操作系统(2)复习 第八章 磁盘存储器的管理
  6. OTU/ASV/Feature tabel 表格 过滤 相对丰度 微生物
  7. ACCESS备件库管理数据库
  8. 让Linux内核不再卡死在DHCP请求上
  9. 什么是动态代理?两种常用的动态代理方式
  10. 已发送邮件如何撤回?