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

如何将bupaR动画流程地图集成到Python Bokeh仪表板,有原生Python方案吗?

两种可行实现方案

完全可以在同一个Bokeh仪表板中实现这两个功能,以下是两种可选的落地方式:

方案1:R+Bokeh混合部署(直接复用现有bupaR动画代码)

该方案无需改写你已经写好的R流程挖掘代码,只需要通过工具链将R生成的动画嵌入Bokeh即可,落地成本最低:

  • 先安装依赖:R环境中安装bupaR、processanimateR、eventdataR、htmlwidgets包,Python环境中安装rpy2
  • 修改你现有的Bokeh代码,新增调用R生成动画HTML的逻辑,用Bokeh的Div组件嵌入自包含的HTML动画,再调整布局即可
  • 参考修改代码片段如下:
# 新增导入
from bokeh.models import Div
import rpy2.robjects as ro
from rpy2.robjects.packages import importr

# 新增R动画生成函数
def get_process_animation_html():
    # 导入所需R包
    importr('bupaR')
    importr('processanimateR')
    importr('eventdataR')
    importr('htmlwidgets')
    # 执行R代码生成动画并导出为自包含HTML
    ro.r('''
    anim <- animate_process(patients)
    temp_path <- saveWidget(anim, tempfile(), selfcontained = TRUE)
    ''')
    # 读取生成的HTML内容
    with open(ro.r('temp_path')[0], 'r', encoding='utf-8') as f:
        return f.read()

# 生成动画嵌入组件
process_anim_div = Div(text=get_process_animation_html(), width=900, height=600)

# 修改原有布局,把动画放在聚类图表下方
curdoc().add_root(column(
    row(inputs, plot),
    process_anim_div
))
curdoc().title = "Clustering + Process Mining"
  • 优缺点:优点是直接复用现有R代码,不需要重新开发动画逻辑;缺点是部署环境需要同时安装Python和R两套环境,运行时开销略高。

方案2:Python原生实现(纯Python栈部署)

如果不想依赖R环境,可以基于Python的流程挖掘生态原生实现:

  • 用pm4py包处理事件日志,提取流程的节点、流转边、事件时间序列等数据
  • 用Bokeh自带的GraphRenderer绘制静态流程地图,节点对应流程活动,边对应活动流转路径
  • 从事件日志中提取所有案例的流转时间线,生成模拟token流动的轨迹数据,通过Bokeh的ColumnDataSource存储token位置,调用curdoc().add_periodic_callback定时更新数据源,即可实现和bupaR效果类似的动画流程地图
  • 优缺点:优点是纯Python栈,部署简单,运行性能更高;缺点是需要自行开发动画逻辑,定制成本略高于混合方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 06:18:04