交互式仪表板!Python轻松完成!⛵

news2025/1/12 21:09:20

💡 作者:韩信子@ShowMeAI
📘 数据分析实战系列:https://www.showmeai.tech/tutorials/40
📘 本文地址:https://www.showmeai.tech/article-detail/410
📢 声明:版权所有,转载请联系平台与作者并注明出处
📢 收藏ShowMeAI查看更多精彩内容

💡 引言

在本篇内容中,ShowMeAI将给大家讲解使用 📘ipywidget 模块创建交互式仪表板。

我们本次用到的数据集是 🏆Kaggle 的 CardioGoodFitness,大家可以通过 ShowMeAI 的百度网盘地址下载。

🏆 实战数据集下载(百度网盘):公众号『ShowMeAI研究中心』回复『实战』,或者点击 这里 获取本文 [41]ipywidgets:使用Python创建交互式仪表板 『CardioGoodFitness 数据集

ShowMeAI官方GitHub:https://github.com/ShowMeAI-Hub

首先,我们需要导入所需的模块。

import pandas as pd
import ipywidgets 
import seaborn as sns
import matplotlib.pyplot as plt

我们先看一下数据变量。数据中包含 2 个连续变量,收入 Income 和英里数 Miles。

💡 看板Demo实现:了解Miles的分布

💦 准备工作

📘ipywidget 模块包含了很多可用的小部件。在这个演示中,我们将使用下拉框选择类别数据,以便更好地了解里程分布。我们将选择箱线图来绘制每个类别的里程数据。

%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)

接下来,我们可以创建一个函数,允许输入用于绘制英里箱线图的列名称。

#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 布局的示例。

下面我们准备输入和输出布局的显示。

#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 和色调。因为每个变量都是一个选择,我们使用了下拉框。

💦 输入设计、选项、值和要定义的描述

# 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)

💦 散点图绘制

# 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的选择器布局

# display the layout of filtering
ui3 = ipywidgets.HBox([drop_down_x,drop_down_y,drop_down_category])

💦 将绘图与选择器相关联

# related the plot link to filtering 
out3 = ipywidgets.interactive_output(scatter,
                                     {'x' : drop_down_x,
                                     'y': drop_down_y,
                                     'category':drop_down_category})

💦 显示选择后的输入和输出

#display the input and output
display(ui3,out3)

参考资料

  • 📘 ipywidget
  • 📘 layout/布局

推荐阅读

  • 🌍 数据分析实战系列:https://www.showmeai.tech/tutorials/40
  • 🌍 机器学习数据分析实战系列:https://www.showmeai.tech/tutorials/41
  • 🌍 深度学习数据分析实战系列:https://www.showmeai.tech/tutorials/42
  • 🌍 TensorFlow数据分析实战系列:https://www.showmeai.tech/tutorials/43
  • 🌍 PyTorch数据分析实战系列:https://www.showmeai.tech/tutorials/44
  • 🌍 NLP实战数据分析实战系列:https://www.showmeai.tech/tutorials/45
  • 🌍 CV实战数据分析实战系列:https://www.showmeai.tech/tutorials/46
  • 🌍 AI 面试题库系列:https://www.showmeai.tech/tutorials/48

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117934.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年iFLYTEKA.I.开发者大赛疫情微博情绪识别挑战赛

自然语言技术 零基础入门NLP - 新闻文本分类 基于word2vec的word相似度 疫情微博情绪识别挑战赛自然语言技术背景一、赛事任务二、使用步骤1.README2.数据下载3.模型训练及保存4.模型预测5.比赛结果背景 疫情发生对人们生活生产的方方面面产生了重要影响,并引发了…

写一个计算器【后缀表达式】(C++)

前言: 闲来无事, 用后缀表达式写了个计算器。。。 支持加()、减(-)、乘(*)、除(/)、乘方(^) 啥是后缀表达式: 波兰逻辑学家卢卡西维奇发明的表示表达式的方法 后缀式即逆波兰式,是波兰逻辑学家卢卡西维奇(&#…

mysql根据父节点递归查询所有子节点,List转树形结构工具类

经常有业务需要递归查询MySQL树形结构某一节点的所有子节点,每次从网上扒拉找都得找半天,索性就自己总结一些自己遇到的比较好用的一些方法。 SQL方法一: SELECT* FROM(SELECTt1.*,IF( FIND_IN_SET( parent_id, parent_ids ) > 0, paren…

2022年先进封装行业研究报告

第一章 行业概况 封装为半导体产业核心一环,主要目的为保护芯片。半导体封装测试处于晶圆制造过程中的后段部分,在芯片制造完后,将晶圆进行封装测试,将通过测试的晶圆按需求及功能加工得到芯片,属于整个 IC 产业链中技…

Android平台GB28181设备接入端如何实时更新经纬度实现国标平台侧电子地图位置标注

技术背景 我们在做GB28181设备接入端的时候,其中有个功能,不难但非常重要:那就是GB28181实时位置的订阅(mobileposition subscribe)和上报(notify)。 特别是执法记录仪、智能安全帽、车载终端等场景下,现…

mysql-基础SQL语句CRUD

文章目录MySQL基础1,数据库相关概念1.1 数据库1.2 数据库管理系统1.3 常见的数据库管理系统1.4 SQL2,MySQL2.1 MySQL安装2.1.1 下载2.1.2 安装(解压)2.2 MySQL卸载2.3 MySQL配置2.3.1 添加环境变量2.3.2 新建配置文件2.3.3 初始化MySQL2.3.4 注册MySQL服…

国家涉及身份安全新规解读 | 《关键信息基础设施安全保护要求》

2022 年11 月 7 日,《信息安全技术关键信息基础设施安全保护要求》(GB/T39204-2022)国家标准发布。作为关键信息基础设施安全保护标准体系的构建基础,该标准将于 2023 年 5 月 1 日正式实施。 该标准提出了以关键业务为核心的整体…

软件测试内容的要点

软件测试内容的要点 20大的召开后,其中提出着力点坚持把发展经济的着力点放在实体经济上,加快建设制造强国、质量强国、航天强国、交通强国、网络强国、数字中国。 随着网络的快速发展,网络和数字已经呈现在大众的视野,软件产品…

2022-12-27 不下载Android Studio直接下载SDK、Platforms-tools、NDK

文章目录全平台支持!!!1. 下载Command line tools only2. 解压command only3. 下载SDK, Platforms-tools, NDK全平台支持!!! 1. 下载Command line tools only 官网链接:https://developer.and…

【电商】FMS财务管理系统---数据流转模块组成

继了解FMS财务管理系统定义之后,如何设计一个FMS系统成了新的问题,笔者在此介绍了FMS的业务逻辑和结构,希望对读者有所帮助。 在此还是要强调一下,虽然这里称之为“财务系统”,但和专业的财务软件有区别,只…

零售收银软件太难挑!实测市面上最受欢迎的收银软件,第一个好用

零售收银软件千千万,常常让商户老板挑得眼花缭乱,不少老板反馈,不知道怎么挑选收银系统软件才能不踩雷。本期小编收集了市场受欢迎度较高的五个零售收银软件,整理了它们各自的优势和劣势,供大家参考。 第一名&#xff…

Appium基础 — APP模拟手势高级操作(一)

APP模拟手势的动作都被封装在TouchAction类中,TouchAction是AppiumDriver的辅助类,主要针对手势操作,如滑动、按、拖动等,原理是将一系列的动作放在一个链条中发送到服务器,服务器接受到该链条后,解析各个动…

碳酸氢锂溶液除钙镁

锂及其盐类是国民经济和国防建设中具有重要意义的战略物资,也是与人们生活息息相关的能源材料。而碳酸锂作为锂盐的基础盐,是制取锂化合物和金属锂的原料,可作铝冶炼的电解浴添加剂,亦可用于合成橡胶、染料、半导体等方面。电池级…

当我把用Python做的课堂点名系统献给各科老师后,再也没挂过科

文章目录起因准备工作效果展示代码实战最后起因 刚上大学的表弟问我,大学准备好好玩玩,问我有没有什么不挂科的秘诀。 哎,这可就问对人了,要想不挂科,先把老师贿赂好,当然,咱们说的贿赂不是送…

全国首个月子中心服务等级划分团体标准的实施拉开月子中心行业新市场格局

11月24日-25日,2022中国母婴业品牌大会暨第七届中国母婴产业高峰论坛在湖南省长沙市盛大召开,来自全国的月子中心、产后修复中心、产康中心、托育机构等近600名业内精英参与了此次盛会。由龙翔集团作为标准编制组长单位,作为整店输出加盟集团…

Arduino - Debugging on the Arduino IDE 2.0

文章目录Arduino - Debugging on the Arduino IDE 2.0概述如果没有官方文档, 如何手工测试哪种开发板能在Arduino IDE 中单步调试?可以调试的板子的调试按钮状态单步调试前下断点ENDArduino - Debugging on the Arduino IDE 2.0 概述 弄了2块开发板(Mega2560(MCU is ATmega2…

浏览器http缓存机制

1、前言 前端缓存主要是分为HTTP缓存和浏览器缓存。其中HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务器代码上设置;而浏览器缓存则主要由前端开发在前端js上进行设置。 http缓存是web缓存的核心,是最难懂的那一部分,也是最重要的那一部分。 2、H…

【大数据clickhouse】clickhouse 数据备份与恢复

一、前言 与其他的数据存储引擎类似,clickhouse承载着大数据量级的数据存储,对于数据的备份与恢复也是必须考虑的,本文将通过操作演示下如何对clickhouse数据进行备份与恢复。 官网说明:官网备份操作说明clickhouse可以通过手动进…

NEMU(RISC-V64)基础知识(一)

目录 1、术语和定义 2、CISC和RISC的区别 3、vimtutor指令查看常见VIM使用命令 4、GDB调试 5、x86中寄存器 6、x86中指令的具体行为 7、中断和异常 8、RISC-V的中断 9、一条指令在NEMU中的执行过程 10、NEMU中的输入输出 11、在NEMU的运行时环境中执行程序步骤 12、…

HarmonyOS使用ArkUI绘制圣诞树

一、前言 起因我参加了 “挑战代码画颗圣诞树” 活动,又因为本次推出一个“圣诞定制勋章”活动,一个是传资源,一个是写文章,为了更好的把知识传递给大家,所以我又出了这篇文章,大家进来一起学习一下吧。 二…