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

Julia中PlotlyJS的savefig保存PNG/PDF时卡顿求助

Julia PlotlyJS savefig保存PNG/PDF卡顿且文件损坏问题

问题现象

运行以下PlotlyJS代码可正常生成并显示散点图,但执行savefig(p, "Plots/net_comparative.png")时,REPL持续卡顿,生成的文件损坏且进程无法正常结束;保存为HTML格式正常,仅PNG/PDF格式出现问题,且相同代码在另一台电脑可正常保存。

示例代码:

using PlotlyJS

n_points = 250
x_vals = 1:n_points
example_data = rand(n_points)
constant_mean = 0.5

trace1 = scatter(; x=x_vals, y=fill(constant_mean, n_points), name="Mean χ = 0.5")
trace2 = scatter(; x=x_vals, y=example_data, name="Data χ = 0.5")

layout = Layout(; title="Simplified Example")
p = plot([trace1, trace2], layout)

系统环境信息

julia> versioninfo()
Julia Version 1.9.1
Commit 147bdf428c (2023-06-07 08:27 UTC)
Platform Info:
  OS: Windows (x86_64-w64-mingw32)
  CPU: 16 × 12th Gen Intel(R) Core(TM) i7-12650H
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-14.0.6 (ORCJIT, alderlake)
  Threads: 1 on 16 virtual cores
Environment:
  JULIA_EDITOR = code
  JULIA_NUM_THREADS =


julia> Pkg.status()
Status `C:\Users\franc\.julia\environments\v1.9\Project.toml`
⌃ [35d6a980] ColorSchemes v3.22.0
⌃ [31c24e10] Distributions v0.25.98
  [a98d9a8b] Interpolations v0.14.7
  [caafb194] Kaleido v0.2.7
⌃ [429524aa] Optim v1.7.6
  [a03496cd] PlotlyBase v0.8.19 `https://github.com/sglyon/PlotlyBase.jl#master`
  [f0f68f2c] PlotlyJS v0.18.11
⌃ [c3e4b0f8] Pluto v0.19.27
  [2fc8631c] PlutoSliderServer v0.3.26
  [fcd29c91] QuantEcon v0.16.5
⌃ [f2b01f46] Roots v2.0.17
⌃ [2913bbd2] StatsBase v0.34.0
  [37e2e46d] LinearAlgebra
  [de0858da] Printf
  [9a3f8284] Random
Info Packages marked with ⌃ have new versions available and may be upgradable.

解决方案建议

PlotlyJS保存PNG/PDF格式依赖Kaleido后端,优先从Kaleido及版本兼容性排查:

  1. 升级Kaleido包:当前Kaleido版本为0.2.7,执行以下命令更新到最新稳定版:
    using Pkg
    Pkg.update("Kaleido")
    
  2. 手动指定Kaleido二进制路径:若自动安装的Kaleido存在问题,手动下载Windows版Kaleido二进制文件,设置环境变量后重启Julia:
    ENV["KALEIDO_PATH"] = "C:/path/to/your/kaleido.exe"
    
  3. 修复PlotlyBase版本兼容性:当前PlotlyBase使用master分支版本,可能与PlotlyJS 0.18.11存在兼容问题,切换到官方发布版:
    Pkg.add(PackageSpec(name="PlotlyBase", version="0.8.19"))
    
  4. 明确保存参数:保存时指定格式、尺寸等参数,避免自动检测异常:
    savefig(p, "test.png", format="png", width=800, height=600, scale=2)
    
  5. 检查文件写入权限:确保保存路径(如Plots/目录)有写入权限,尝试保存到桌面等权限明确的路径。
  6. 启用多线程:以多线程模式启动Julia(julia -t auto),再尝试保存操作,排查单线程资源不足问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 03:34:52