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

Plotly 5.6.0绘制Sunburst旭日图输出空白问题咨询

问题根因

Plotly 5.6.0版本的px.sunburst在构造层级路径数据时,内部调用了pandas的DataFrame.append方法。当环境中pandas版本≥1.4.0时,该弃用方法的兼容问题会导致层级表拼接失败,最终生成空的绘图数据集,直接表现为输出图表空白,运行时弹出的如下警告就是该问题的直接提示,和Value列是否过滤大于0的记录无关:

The frame.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.

无需升级Plotly的解决方案
  • 方案1:降级pandas到兼容版本
    将pandas降级到1.3.5版本(最后一个无append兼容问题的稳定版),执行命令:
    pip install pandas==1.3.5
    降级完成后原有绘图代码不需要做任何修改,直接运行即可正常渲染旭日图。
  • 方案2:添加兼容猴子补丁
    若无法调整pandas版本,可在导入plotly前给pandas追加兼容append方法,用官方推荐的pandas.concat实现原有append的逻辑,补丁代码放在脚本最开头即可:
    import pandas as pd
    # 兼容Plotly 5.6.0内部的append调用
    if not hasattr(pd.DataFrame, "append"):
        def _df_append(self, other, ignore_index=False, verify_integrity=False, sort=False):
            return pd.concat(
                [self, other],
                ignore_index=ignore_index,
                verify_integrity=verify_integrity,
                sort=sort
            )
        pd.DataFrame.append = _df_append
    
    # 原有代码无需修改
    import plotly.express as px
    fig = px.sunburst(
        data_frame=data_ACT,
        values='Value',
        path=['Mode','Type']
    )
    fig.show()
    
    该补丁完全匹配原DataFrame.append的参数行为,不会影响其他业务代码逻辑。
  • 方案3:绕开px的自动路径解析
    手动整理旭日图需要的父子节点、数值对应关系,直接调用plotly.graph_objects.Sunburst绘图,完全避开px内部调用append的逻辑。
额外排查点

如果上述操作完成后仍出现空白图,检查path参数传入的分类列是否存在空值(NaN/None),空值会导致层级解析失败,绘图前可将对应列的空值统一填充为指定字符串(如'未分类')即可。

内容的提问来源于stack exchange,提问作者Juliane Lüder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 08:45:38