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

在Azure Databricks中为Plotly直方图添加分箱数控制滑块

在Azure Databricks中为Plotly直方图添加分箱数控制滑块

以下是实现交互式分箱数控制的完整代码,基于ipywidgets实现滑块与直方图的联动:

from pyspark.sql.functions import *
from pyspark.sql.types import *
import pandas as pd
import plotly.express as px
from ipywidgets import interact, IntSlider

# 构建Spark DataFrame并转换为Pandas DataFrame
data = [["1", "Amit", "DU", "I", "8", "6"],
        ["2", "Mohit", "DU", "I", "4", "2"],
        ["3", "rohith", "BHU", "I", "5", "3"],
        ["4", "sridevi", "LPU", "I", "1", "6"],
        ["1", "sravan", "KLMP", "M", "2", "4"],
        ["5", "gnanesh", "IIT", "M", "6", "8"],
        ["6", "gnadesh", "KLM", "c", "0", "9"]]

columns = ['ID', 'NAME', 'college', 'metric', 'x', 'y']

dataframe = spark.createDataFrame(data, columns)
dataframe = dataframe.withColumn("x", dataframe.x.cast(DoubleType()))
data = dataframe.toPandas()

# 定义更新直方图的函数
def update_histogram(nbins):
    fig = px.histogram(data_frame=data, x='x', nbins=nbins, text_auto=True)
    # 在Databricks中直接显示Plotly图表
    display(fig)

# 创建交互式滑块并绑定函数
interact(
    update_histogram,
    nbins=IntSlider(min=1, max=50, value=25, step=1, description='分箱数:')
)

实现说明:

  • ipywidgets集成:用IntSlider创建分箱数控制滑块,设置了1到50的合理范围,初始值保留你原本的25
  • 动态更新逻辑:update_histogram函数接收滑块当前值,重新生成对应分箱数的直方图,通过Databricks的display方法渲染
  • 环境适配:该方案完全兼容Azure Databricks,无需额外配置外部服务

替代方案说明:

如果偏好纯Plotly原生实现,也可通过dash库搭建交互式应用,但在Databricks中需开启Dash支持,步骤相对繁琐。上述ipywidgets方案是更轻量的选择。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 00:05:33