30分钟吃掉ipywidgets交互工具

Jupyter 中实现交互式图表:ipywidgets 从入门到部署 本文介绍了ipywidgets在Jupyter Notebook中的交互式应用开发,包括环境配置、常用控件(如下拉菜单、滑块、复选框等)的使用方法,以及与Matplotlib和Plotly等可视化库的集成技巧。文章还展示了如何通过Voilà和Jupyter-Dash快速部署交互式应用,并通过鸢尾花数据集探索案例说明其实际应用价值。ipywidgets以其轻量级、易用性和强大兼容性,成为构建动态数据可视化工具的理想选择。 阅读详情

 ipywidgets 是一个在jupyter notebook 中开发用户交互界面的简单工具。

可以用它来做机器学习模型的演示,构建数据分析dashboard,或者做一些小工具。

先看个效果,再介绍原理~

4c99783886b11897bb4a76952af90c06.gif

公众号算法美食屋后台回复关键词:源码,获取本文notebook源代码~

相比streamlit和gradio,ipywidgets具有如下优势:

⚫️ 灵活高效:ipywidgets的组件可以和notebook的输出很好地结合在一起。

⚫️ 方便调试:ipywidgets和代码一起直接在jupyter中展示和运行, all in one notebook。

⚫️ 便于分享:任何可以托管notebook的环境都可以使用和展示它。

大多数的ipywidgets应用一般由如下最常用的基础模块构成。

⚫️ 应用界面:interact(简易场景), interact_manual(简易场景手动触发), interactive_output(定制化输入), display(完全定制化场景)

⚫️ 输入输出:Output(笔记本输出), Image(图像), Text(文本框), Textarea(文本块),  Dropdown(下拉选项), IntSlider(整数滑条), FloatSlider(浮点数滑条), HTML, Viedio(视频),

⚫️ 控制组件:Button(按钮), Play(播放器)

⚫️ 布局组件:Tab(标签页), HBox(行布局), VBox(列布局), Layout(外观)

我们将由易到难通过4个范例来介绍ipywidgets的使用方法。

⚫️ hello world范例

⚫️ 文本分类

⚫️ 图片浏览工具

⚫️ 图片分类

一,Hello World (难度系数: ⭐️)

import ipywidgets as widgets
def greet(name):
    return "Hello " + name + "!!"


w = widgets.interact(greet,name='LiLei');
w

53a405fa64cc9da9ca98f5d48ab47438.png

二,图片浏览工具 (难度系数: ⭐️⭐️)

from ipywidgets import widgets,interact
from pathlib import Path
from PIL import Image
from  torchkeras.data import download_baidu_pictures 
download_baidu_pictures(keyword='猫咪表情包',needed_pics_num=20, save_dir = 'cats')
files = [str(x) for x in Path('cats').rglob('*.jpg') if 'checkpoint' not in str(x)]
def browser_image(path):
    return Image.open(path) 
    
interact(browser_image, path=files)

f0e485a9bb0018fe3231ad2ed0e1d262.png

三,文本分类 (难度系数: ⭐️⭐️)

#解决国内下载huggingface仓库慢的问题
import os 
os.environ['HF_ENDPOINT']='https://hf-mirror.com'  


import ipywidgets as widgets
from transformers import pipeline


pipe = pipeline("text-classification")


@widgets.interact_manual(text='Good morning')
def clf(text):
    result = pipe(text)
    label = result[0]['label']
    score = result[0]['score']
    res = {label:score,'POSITIVE' if label=='NEGATIVE' else 'NEGATIVE': 1-score}
    return res

60aaea4b1d77483a718fbe7e861e5420.png

四,图片分类 (难度系数: ⭐️⭐️⭐)

import ipywidgets as widgets
from IPython.display import HTML,display 


import pandas as pd 
from ultralytics import YOLO
from skimage import data
from PIL import Image


model = YOLO('yolov8n-cls.pt')


def predict(img):
    ...
    return res


title = ...


files = widgets.Dropdown(
    ...
)


button = widgets.Button(...)
button.style.button_color = 'lightgreen'


out1 = widgets.Output() #widgets.Textarea(value='',layout=widgets.Layout(width='100%',height='100px'))
out2 = widgets.Output()
output = widgets.HBox([out1,out2])


display(title,files,button,output)


def on_button_clicked(btn):
    ...
    with out1:
        display(Image.open(files.value))
    
    with out2:
        display(fig)


button.on_click(on_button_clicked)

b53c913de8812c441bde9de21177bbf2.gif

公众号算法美食屋后台回复关键词: 源码,获取本文notebook源代码~

万水千山都是情,点个在看行不行?😊

abedce01b439b52907aac9282befbec1.png

Matplotlib 高级图表绘制与交互式可视化(ipywidgets) 综合示例:动态仪表盘# 创建数据# 定义绘图函数plt.grid()plt.show()# 创建滑块和输出区域# 绑定滑块和绘图函数plt.clf()# 显示控件和输出区域。 阅读详情

相关推荐

Pandas一键式交互分析界面:零配置CSV探查工具

在数据科学实践中,探索性数据分析(EDA)是建模前的关键环节,其核心在于快速理解数据结构、识别质量缺陷并生成可解释洞察。基于pandas原生生态,结合ipywidgets构建的交互式分析界面,无需Web服务依赖,即可实现文件上传、编码自适应解析、智能类型推断、增强统计摘要、缺失模式可视化及多策略相关性计算。该方案突出稳定性与工程落地性,支持中文编码(UTF-8/GBK)自动fallback、伪数值与日期列识别、信息熵驱动的分类变量评估,并内置工业级绘图规范(DPI=150、坐标轴鲁棒裁剪、色盲友好配色)。适

张沈鹏,在路上 ... 510

Jupyter ipywidgets组件使用

ipywidgets ipywidgets可以用于在jupyter notebook当中进行界面设计,以及一些简单的交互式控件操作。 SelectMultiple(复选框框组件取值) from ipywidgets import interact,widgets from ipywidgets import interact from ipywidgets import Button, Layout #样例列表 test_list = ['first','second','third','forth','

weixin_44784088的博客 4487

Pandas一键交互式数据分析工具:Jupyter零代码探索CSV

交互式数据探索是数据分析流程中的关键环节,其核心在于将Pandas的数据处理能力封装为低门槛、可复用的工作流。基于ipywidgets的本地化界面设计,绕过Web服务部署复杂度,实现与Jupyter Notebook深度集成;通过分步触发、按需计算和结构化元信息展示,显著提升数据初探效率。该方案兼顾技术严谨性(如相关性p值过滤、缺失值智能识别)与工程实用性(文件头校验、大表采样优化),特别适用于业务分析师、数据新人及需快速验证数据质量的非技术角色。本文即围绕Pandas自动化分析与交互式数据探索两大核心展开

weixin_30471561的博客 309

JupyterLab使用指南(六):JupyterLab的 Widget 控件

JupyterLab 中的 Widget 控件是一种交互式的小部件,可以用于创建动态的、响应用户输入的界面。通过使用 ipywidgets 库,用户可以在 Jupyter notebook 中创建滑块、按钮、文本框、选择器等控件,从而实现数据的交互式展示和控制。

一名全栈开发工程师 6123

Jupyter+Gradio:零前端交互仪表盘快速构建指南

交互式仪表盘是数据科学成果落地的关键环节,其本质是将Python函数能力封装为可共享、可操作的Web界面。Gradio作为轻量级函数接口翻译器,无需HTML/JS知识,仅需声明输入输出组件即可自动生成UI,天然适配Jupyter内核环境。相比ipywidgets,它在响应延迟、输出类型支持(Plotly/Bokeh/JSON等)和扩展性(纯Python组件开发)上具备显著优势;结合Jupyter的开发一致性与Gradio的即时发布能力,可将模型验证周期从小时级压缩至分钟级。本文聚焦Jupyter中Gradi

weixin_34075268的博客 829

Voila生产级提示工程:约束驱动的GPT-4代码生成方法论

Voila并非Jupyter Notebook的简单网页化工具,而是一个基于Tornado的服务端渲染框架,其核心原理在于隔离前端交互与后端计算、依赖异步事件绑定、并严格管理静态资源路径。理解这一底层机制,是实现Python数据可视化应用从开发到部署无缝落地的技术前提。本文聚焦Voila与Plotly、ipywidgets等生态组件的协同实践,深入解析版本兼容性陷阱、FigureWidget状态管理、模板继承机制等高频痛点,结合GPT-4提示工程,将运维经验、前端约束和安全规范转化为可执行的Prompt指令

weixin_34279184的博客 654

Python实现SIR传染病模型动态可视化与参数交互分析

SIR模型是流行病学中最基础的微分方程动力学模型,用于刻画易感者、感染者与康复者三类人群的数量演化规律。其核心在于通过β(传染率)和γ(康复率)推导基本再生数R₀=β/γ,从而判断疫情是否爆发(R₀>1)或自限(R₀<1)。Python凭借scipy.integrate.solve_ivp高精度数值求解能力、matplotlib+ipywidgets轻量级交互可视化支持,以及对真实数据(如学校缺勤记录、疾控周报)的灵活拟合接口,成为教学演示、基层应急推演与公卫决策沙盒构建的理想工具。本文聚焦SIR模型从数学

weixin_30562507的博客 350

Python地理可视化实战:用Plotly打造可交付交互地图

地理可视化是数据分析中连接空间语义与业务洞察的关键技术,其核心在于将经纬度或行政区划数据映射为具备投影精度、交互响应和多层叠加能力的动态图表。Plotly凭借WebGL渲染引擎与D3.js交互逻辑,实现了GIS级地理坐标系支持、Jupyter实时调试及Dash企业部署的一体化能力,显著区别于Matplotlib的静态制图范式和Folium的轻量但联动受限特性。其scattergeo、choropleth与graph_objects三层架构,支撑从城市点位热力到省级面量动画的完整场景,尤其在中文地名清洗、投影

weixin_34211761的博客 431

低成本动态过程可视化:Quarto、Streamlit等交互工具替代PPT动画

在学术汇报与跨学科研究中,如何把抽象的动态过程转化为可交互的演示,一直是研究者面临的痛点。传统PPT动画受限于线性时间轴,静态绘图工具又无法呈现连续演化,而参数操控、状态跳转等需求往往被忽视。实际上,借助成熟的网页幻灯片、Notebook控件与Web应用生成方案,无需系统学习前端开发,便能制作出支持拖动滑块、切换参数的动态可视化作品。这类工具基于模型、数据与界面的分离思想,显著降低制作门槛,同时保证过程可复现、结果易分享。无论是组会汇报、论文答辩还是面向非技术合作方的模型演示,都能通过Geogebra、ip

weixin_35835030的博客 289

pandas与Jupyter Notebook:从Excel困境到可复现数据分析工作流

数据处理本质上是将原始结构化数据(如CSV、Excel)转化为可信业务洞察的过程。其核心原理在于高效清洗、灵活分组、精准索引与可视化表达。pandas提供DataFrame这一带标签的二维数据结构,以loc/iloc、groupby、merge等API实现比SQL更直觉、比Excel公式更鲁棒的表格操作;Jupyter Notebook则通过单元格式交互执行、Markdown注释与结果内嵌,构建‘问题→代码→图表→结论’的完整可追溯链条。这种组合显著提升分析可复现性、团队协作效率与决策响应速度,广泛应用于销

all00747的博客 393

Voila可视化提示词工程:构建稳定可交付的AI生成仪表盘

Voila作为Jupyter Notebook到Web应用的关键转换工具,其核心挑战在于服务端渲染机制与前端交互逻辑的深度耦合。理解Voila的widget事件生命周期、静态资源预编译规则及IPython kernel状态管理原理,是保障数据可视化应用高可用性的技术前提。基于此原理,‘Sure Fire Prompting’通过环境锚定、契约式输出和故障注入测试,将自然语言提示升级为可验证的运行时规范,显著提升AI生成代码在金融风控、医疗BI等生产场景中的首屏性能(<2s)与交互成功率(>99.6%)。本文

weixin_33826609的博客 447

3分钟掌握JupyterLab变量监控:提升数据科学调试效率的终极指南

在数据科学和机器学习工作中,你是否经常为复杂的变量管理和调试而烦恼?JupyterLab变量监控插件(Variable Inspector)正是为你量身打造的编程辅助工具,它能实时监控代码执行过程中的变量变化,让你的数据调试工作变得前所未有的简单高效。这款专业的JupyterLab扩展不仅提供实时数据查看功能,更成为每个数据科学家必备的编程利器。 ## 🔍 数据科学家的调试痛点:为什么需要变量

gitblog_00516的博客 764

别再死记硬背了!用Python画张图,5分钟彻底搞懂16QAM星座图原理

本文介绍如何通过Python绘制16QAM星座图,帮助通信工程学习者直观理解调制技术原理。文章详细讲解了16QAM的基础知识、星座图绘制方法,并通过Python代码实现可视化,涵盖格雷码编码、欧氏距离等关键概念,适合视觉型学习者和开发者深化理解。

weixin_30421809的博客 388

Tweet主题建模交互可视化:Plotly实现可钻取、可联动的动态分析

主题建模(Topic Modeling)是文本挖掘的核心技术,其价值高度依赖结果的可解释性与可操作性。传统静态图表难以支撑多维探索——尤其在推文等短文本场景中,主题分布、时间演化与词重要性排序需协同验证。Plotly凭借原生交互能力、Python生态深度集成及前端事件驱动架构,成为构建高信噪比可视化系统的首选工具。它支持悬停即见原始推文、框选触发跨图联动、点击下钻语义层校验,真正将抽象概率转化为业务洞察。本文聚焦Tweet Topic Modeling落地实践,详解如何用Plotly搭建具备表层感知、中层验

368

用Python的NumPy和Matplotlib,5分钟可视化理解矢量场的‘源’与‘汇’(散度实战)

本文通过Python的NumPy和Matplotlib库,实战演示如何可视化理解矢量场的‘源’与‘汇’(散度概念)。无需复杂理论,只需基础Python知识,即可在Jupyter Notebook中创建生动的可视化效果,直观展示矢量场的发散与汇聚现象。文章涵盖环境配置、点电荷电场模型构建、散度计算与可视化,以及进阶应用如电偶极子场分析和交互式可视化。

387

jupyter深度理解六 之ipywidgets

ipywidgets 是 Jupyter 和 IPython 项目中的一个库。它提供创建和使用交互式 widgets 的 API。ipywidgets 支持很多常见的 widgets,包括上面提到的四种以及日期选择器、弹窗框等。ipywidgets 提供了创建自定义 widgets 的能力。widgets 在 Jupyter notebook 和独立 web 应用中都是交互式的。widgets 间可以建立连线关系,一个 widgets 的变化会改变另一个 widgets。

zhangzhechun的专栏 2240

别再只会用Photoshop了!用Python+OpenCV的cv2.addWeighted函数,5分钟搞定图片渐变融合特效

本文介绍如何利用Python和OpenCV的cv2.addWeighted函数快速实现图片渐变融合特效,相比Photoshop更高效精准。通过12行代码即可完成复杂图像处理,适用于批量操作和参数复用,显著提升设计效率。

weixin_30765577的博客 446

CVAT实战:从零搭建高效数据标注流水线

本文详细介绍了如何使用CVAT搭建高效的数据标注流水线,从环境部署到团队协作,再到数据流转和质量把控,全面覆盖了数据标注的各个环节。CVAT作为一款开源的数据标注工具,支持多人协作和丰富的标注类型,特别适合遥感图像等复杂场景的标注需求。通过实战案例和技巧分享,帮助读者快速掌握CVAT的核心功能,提升标注效率。

weixin_30555125的博客 400

SAM 仿真核心 SSC 306 版本 API 调用:Python 脚本实现光伏项目 5 分钟经济性分析

本文详细介绍了如何通过Python脚本调用SAM仿真核心SSC 306版本的API,实现光伏项目5分钟经济性分析的高效方法。文章涵盖环境配置、参数设置、经济模型构建及批量分析技巧,特别适合可再生能源领域的开发者和分析师,大幅提升项目评估效率。

weixin_30387423的博客 346

步进电机梯形加减速算法的实现

步进电机梯形加减速算法的实现

m0_69251699的博客 1318

智能车图像处理去畸变+逆透视教程

图像处理,去畸变与逆透视整合

wu58430的博客 1万+
上一篇: Ollama 本地CPU部署开源大模型
下一篇: Coze接入微信公众号以及Python调用API保姆级教程
算法美食屋
博客等级 码龄9年 2万+粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值