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

寻求Bokeh新版本嵌套饼图分层实现的简化示例

Bokeh新版本实现嵌套饼图(甜甜圈)简化示例

旧版Bokeh的饼图接口已废弃,新架构下可以通过Wedge图形元素分层绘制,实现类似的嵌套饼图效果。以下是简化实现示例:

步骤1:导入依赖模块

from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource
import numpy as np

步骤2:准备分层数据

# 内层饼图数据
inner_labels = ["分类A", "分类B", "分类C"]
inner_values = [30, 40, 30]
inner_angles = np.array(inner_values) / sum(inner_values) * 2 * np.pi

# 外层甜甜圈数据
outer_labels = ["A-1", "A-2", "B-1", "B-2", "C-1", "C-2"]
outer_values = [15, 15, 20, 20, 15, 15]
outer_angles = np.array(outer_values) / sum(outer_values) * 2 * np.pi

步骤3:计算角度区间并创建数据源

# 计算每个分段的起始角度(累积和)
inner_start_angles = np.cumsum(np.append(0, inner_angles[:-1]))
outer_start_angles = np.cumsum(np.append(0, outer_angles[:-1]))

# 内层数据源
inner_source = ColumnDataSource(data=dict(
    start=inner_start_angles,
    end=inner_start_angles + inner_angles,
    labels=inner_labels,
    colors=["#c9d9d3", "#718dbf", "#e84d60"]
))

# 外层数据源
outer_source = ColumnDataSource(data=dict(
    start=outer_start_angles,
    end=outer_start_angles + outer_angles,
    labels=outer_labels,
    colors=["#a1d7c9", "#c9d9d3", "#5a7dbf", "#718dbf", "#c85a60", "#e84d60"]
))

步骤4:分层绘制图形

# 创建绘图对象,关闭工具栏、坐标轴与网格
p = figure(height=400, width=400, toolbar_location=None,
           title="嵌套饼图示例", x_range=(-1.5, 1.5), y_range=(-1.5, 1.5))
p.axis.visible = False
p.grid.visible = False

# 绘制外层甜甜圈(半径范围1~1.5)
p.wedge(x=0, y=0, radius_inner=1, radius_outer=1.5,
        start="start", end="end", fill_color="colors", line_color="white",
        source=outer_source, legend_field="labels")

# 绘制内层饼图(半径范围0~1)
p.wedge(x=0, y=0, radius_inner=0, radius_outer=1,
        start="start", end="end", fill_color="colors", line_color="white",
        source=inner_source)

# 展示图形
show(p)

说明

这个示例通过Wedge元素分别绘制内层饼和外层环,利用radius_inner和radius_outer控制每层的范围,完全贴合新架构的分层逻辑,替代了旧版废弃的饼图接口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 08:22:50