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

Plotly Graph Objects图表保存为PNG无响应问题求助

Plotly Graph Objects 导出图片程序挂起的解决思路

问题描述

使用Plotly Graph Objects生成图表后,调用fig.write_image()(包括指定engine='kaleido'或orca引擎)时程序无响应、挂起,无法成功导出PNG等静态图片。

用户测试代码:

import plotly.graph_objects as go

fig = go.Figure(
    data=[go.Bar(x=[1, 2, 3], y=[1, 3, 2])],
    layout=go.Layout(
        title=go.layout.Title(text="A Figure Specified By A Graph Object")
    )
)

fig.show()
# 执行此代码时程序挂起
fig.write_image("fig1.png")

解决思路

1. 验证依赖安装完整性

  • Kaleido引擎:确保正确安装kaleido,执行pip install kaleido(conda环境用conda install -c conda-forge python-kaleido)。安装后在终端运行kaleido --version,若命令无响应或报错,说明安装异常,建议卸载后重新安装指定版本(如pip install kaleido==0.2.1)。
  • Orca引擎:需单独安装Orca应用程序(非仅Python包),安装后确保其在系统PATH中,终端执行orca --version能正常返回版本信息。

2. 排查环境冲突

  • 在全新虚拟环境中测试:创建独立的venv/conda环境,仅安装plotly和对应导出引擎依赖,再运行导出代码,排除现有环境的依赖冲突。
  • 临时关闭杀毒软件、防火墙,避免其阻止kaleido/orca进程运行。

3. 调整导出参数

  • 指定明确的宽高参数,避免默认渲染逻辑异常:
    fig.write_image("fig1.png", width=800, height=600)
    
  • 尝试导出为SVG、PDF等其他格式,判断是特定格式问题还是通用导出故障:
    fig.write_image("fig1.svg")
    

4. 排查进程与日志

  • 程序挂起时,通过任务管理器(Windows)或活动监视器(Mac)查看是否有kaleido/orca进程无响应,结束进程后重新尝试。
  • 启用调试日志,获取导出过程中的错误信息:
    import logging
    logging.basicConfig(level=logging.DEBUG)
    

5. 替代导出方案

若上述方法均无效,可尝试字节流保存方式:

import plotly.io as pio
img_bytes = pio.to_image(fig, format='png', engine='kaleido')
with open('fig1.png', 'wb') as f:
    f.write(img_bytes)

或通过fig.show()在浏览器渲染后直接截图获取图片。

内容的提问来源于stack exchange,提问作者Jung Hun Kim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 22:51:08