交互式仪表板!Python轻松完成!⛵
- 💡 作者:韩信子@ShowMeAI
- 📘 数据分析实战系列:http://www.showmeai.tech/tutorials/40
- 📘 本文地址:http://www.showmeai.tech/article-detail/410
- 📢 声明:版权所有,转载请联系平台与作者并注明出处
- 📢 收藏ShowMeAI查看更多精彩内容
💡 引言
在本篇内容中,ShowMeAI将给大家讲解使用 📘ipywidget 模块创建交互式仪表板。
我们本次用到的数据集是 🏆Kaggle 的 CardioGoodFitness,大家可以通过 ShowMeAI 的百度网盘地址下载。
🏆 实战数据集下载(百度网盘):公众号『ShowMeAI研究中心』回复『实战』,或者点击 这里 获取本文 [41]ipywidgets:使用Python创建交互式仪表板 『CardioGoodFitness 数据集』
⭐ ShowMeAI官方GitHub:http://github.com/ShowMeAI-Hub
首先,我们需要导入所需的模块。
python
import pandas as pd
import ipywidgets
import seaborn as sns
import matplotlib.pyplot as plt
我们先看一下数据变量。数据中包含 2 个连续变量,收入 Income 和英里数 Miles。
💡 看板Demo实现:了解Miles的分布
💦 准备工作
📘ipywidget 模块包含了很多可用的小部件。在这个演示中,我们将使用下拉框选择类别数据,以便更好地了解里程分布。我们将选择箱线图来绘制每个类别的里程数据。
```python %matplotlib widget
Drop down for boxplot variable to be select
drop_down_name = ipywidgets.Dropdown(options=list(df.drop(['Miles','Income'],axis=1).columns), value=list(df.drop(['Miles','Income'],axis=1).columns)[0], description='Columns:', disabled=False) ```
接下来,我们可以创建一个函数,允许输入用于绘制英里箱线图的列名称。
```python
selected_vals = column used to plot
def boxplot(selected_vals): plt.close('all') fig = plt.figure(figsize=(9,5)) plt.style.use('seaborn') sns.boxplot(df[selected_vals],df['Miles']) plt.title('Boxplot of miles for' + selected_vals) plt.show() ```
之后,我们需要创建一个 📘layout/布局,Jupyter 交互式小部件具有一个 layout 属性,包含了许多影响小部件布局的 CSS 属性。
最简单的自定义是 HBox,它是一个水平布局的选择器,而 VBox 代表一个垂直布局的选择器。下面是 HBox 或 VBox 布局的示例。
下面我们准备输入和输出布局的显示。
```python
layout for filtering
ui2 = ipywidgets.HBox([drop_down_name])
link your function to your input
out2 = ipywidgets.interactive_output(boxplot, {'selected_vals' : drop_down_name})
display your box plot
display(ui2,out2) ```
上面散点图的输入是 x、y 和色调。因为每个变量都是一个选择,我们使用了下拉框。
💦 输入设计、选项、值和要定义的描述
```python
dropbox select x axis
drop_down_x = ipywidgets.Dropdown(options=list(df.columns), value=list(df.columns)[0], description='X variable:', disabled=False)
dropbox select y axis
drop_down_y = ipywidgets.Dropdown(options=list(['Miles','Income']), value=list(['Miles','Income'])[0], description='Y variable:', disabled=False)
dropbox select category
drop_down_category= ipywidgets.Dropdown(options=list(df.drop(['Miles','Income'],axis=1).columns), value=list(df.drop(['Miles','Income'],axis=1).columns)[0], description='Category:', disabled=False) ```
💦 散点图绘制
```python
scatter plot function
def scatter(x,y,category): plt.close('all') fig = plt.figure(figsize=(9,5)) plt.style.use('seaborn') sns.scatterplot(data=df,x=x,y=y,hue=category) plt.title('Scatterplot of ' +x+' versus '+ y) #plt.xlabel('Date') plt.show() ```
💦 显示HBox或VBox的选择器布局
```python
display the layout of filtering
ui3 = ipywidgets.HBox([drop_down_x,drop_down_y,drop_down_category]) ```
💦 将绘图与选择器相关联
```python
related the plot link to filtering
out3 = ipywidgets.interactive_output(scatter, {'x' : drop_down_x, 'y': drop_down_y, 'category':drop_down_category}) ```
💦 显示选择后的输入和输出
```python
display the input and output
display(ui3,out3) ```
参考资料
推荐阅读
- 🌍 数据分析实战系列:http://www.showmeai.tech/tutorials/40
- 🌍 机器学习数据分析实战系列:http://www.showmeai.tech/tutorials/41
- 🌍 深度学习数据分析实战系列:http://www.showmeai.tech/tutorials/42
- 🌍 TensorFlow数据分析实战系列:http://www.showmeai.tech/tutorials/43
- 🌍 PyTorch数据分析实战系列:http://www.showmeai.tech/tutorials/44
- 🌍 NLP实战数据分析实战系列:http://www.showmeai.tech/tutorials/45
- 🌍 CV实战数据分析实战系列:http://www.showmeai.tech/tutorials/46
- 🌍 AI 面试题库系列:http://www.showmeai.tech/tutorials/48
- whylogs工具库的工业实践!机器学习模型流程与效果监控 ⛵
- 脉脉疯传!2023年程序员生存指南;多款prompt效率加倍工具;提示工程师最全秘籍;AI裁员正在发生 | ShowMeAI日报
- 中国风?古典系?AI中文绘图创作尝鲜!⛵
- Python中内置数据库!SQLite使用指南!
- Pandas中你一定要掌握的时间序列相关高级功能
- 数据科学家赚多少?数据全分析与可视化 ⛵
- 交互式仪表板!Python轻松完成!⛵
- ChatGPT!我是你的破壁人;比尔·盖茨不看好Web3与元宇宙;FIFA押中4届世界杯冠军;GitHub今日热榜 | ShowMeAI资讯日报
- ChatGPT要收费了;华尔街大裁员;阿里2023十大科技趋势;小红书元宇宙虚拟服饰被吐槽;GitHub今日热榜 | ShowMeAI资讯日报
- AI创业时代!这9个方向有钱途;AIGC再添霸榜应用Lensa;美团SemEval2022冠军方法分享;医学图像处理工具箱… | ShowMeAI资讯日报
- 嘘!P站数据分析年报;各省市疫情感染进度条;爱奇艺推出元宇宙App;You推出AI聊天机器人;GitHub今日热榜 | ShowMeAI资讯日报
- 美国公司裁员潮时间线◉科技寒冬可视化;3份报告回顾中国开发者2022;自动驾驶下半场,谁会冲出重围 | ShowMeAI每周通讯 #005-01.07
- 副业月入过万?数据有话说;扫地机器人发展到哪步了;疫情后要不要重返办公室;淘宝元宇宙直播间;GitHub今日热榜 | ShowMeAI资讯日报
- 大战谷歌!微软Bing引入ChatGPT;羊了个羊40万年薪招研发;Debian彻底移除Python2;GitHub今日热榜 | ShowMeAI资讯日报
- 酸了!乐视工作制改为四天半;高通新年裁员;AI绘画公司开始倒闭;网易入股张艺谋元宇宙公司;GitHub今日热榜 | ShowMeAI资讯日报
- 要么干要么滚!推特开始裁员了;深度学习产品应用·随书代码;可分离各种乐器音源的工具包;Transformer教程;前沿论文 | ShowMeAI资讯日报
- 真实世界的人工智能应用落地——OpenAI篇 ⛵
- 阳过→阳康,数据里的时代侧影;谷歌慌了!看各公司如何应对ChatGPT;两份优质AI年报;本周技术高光时刻 | ShowMeAI每周通讯 #003-12.24
- 用魔法打败魔法!这件毛衣让摄像头看不到你;两款酷炫的AI写作软件;快如闪电的B站下载工具;基于扩散模型的蛋白质设计 | ShowMeAI资讯日报
- 一文读懂!异常检测全攻略!从统计方法到机器学习 ⛵