You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Jupyter Notebook中统计ipywidgets IntSlider的步骤计数需求

解决方案

核心修改思路

  • 替换原有@widgets.interact装饰器,显式使用滑块组件(适配原参数的FloatSlider,若需整数步长可改用IntSlider)
  • 自定义合格/不合格判定规则(示例以马力≥100为合格,可按需修改)
  • 用列表存储每次滑块调整的参数与计数结果,最终转为表格展示
  • 同步完成可视化更新、计数计算与数据记录

完整代码

import ipywidgets as widgets
from IPython.display import display, clear_output
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
%matplotlib inline

# 加载数据集
cars = sns.load_dataset('mpg')

# 初始化记录历史数据的列表
history_records = []

# 定义合格判定规则(可根据业务需求修改)
def check_qualified(horsepower):
    return horsepower >= 100  # 示例:马力≥100标记为合格

# 创建滑块组件(若需整数滑块,替换为IntSlider并调整step、min/max为整数)
bw_slider = widgets.FloatSlider(
    value=0.1,
    min=0.1,
    max=5.0,
    step=0.1,
    description='带宽:',
    continuous_update=False  # 拖动时不实时触发,提升性能
)

# 创建输出组件用于展示记录表格
output_table = widgets.Output()

# 定义回调函数:更新可视化+计算计数+记录数据
def update_plot_and_record(bw):
    # 清空当前输出,避免重复绘图
    clear_output(wait=True)
    
    # 绘制KDE分布图
    sns.kdeplot(cars.horsepower, lw=3, fill=True, bw_adjust=bw)
    plt.xlim(-20, 200)
    plt.ylim(0, 0.04)
    plt.show()
    
    # 计算合格/不合格数量
    qualified_total = cars.horsepower.apply(check_qualified).sum()
    unqualified_total = len(cars) - qualified_total
    
    # 记录当前参数与计数结果
    history_records.append({
        '带宽参数(bw)': round(bw, 1),
        '合格样本数': qualified_total,
        '不合格样本数': unqualified_total
    })
    
    # 在输出组件中展示历史记录表格
    with output_table:
        clear_output(wait=True)
        display(pd.DataFrame(history_records))

# 绑定滑块与回调函数
widgets.interact(update_plot_and_record, bw=bw_slider)

# 显示记录表格
display(output_table)

关键细节说明

  • 滑块类型适配:原代码使用0.1步长的浮点参数,因此用FloatSlider;若需整数步长,直接替换为IntSlider并调整step=1、min/max为整数范围即可
  • 计数规则自定义:修改check_qualified函数内的逻辑,比如改为horsepower.between(60, 140)来定义合格范围
  • 数据持久化:如果需要将记录保存到文件,可在回调中添加pd.DataFrame(history_records).to_csv('count_records.csv', index=False)
  • 性能优化:开启continuous_update=False,仅在滑块拖动结束后触发计算,避免频繁更新导致卡顿

内容的提问来源于stack exchange,提问作者Marble_gold

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 10:20:41