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

Julia使用savefig保存图像时遇Unexpected character错误求助

使用PlotlyJS.savefig保存图像时遭遇"Unexpected character"错误

调用PlotlyJS.savefig(p)保存由employment_contour(results)生成的等高线图(results为矩阵)时,触发如下错误,已尝试更新、重装相关包,分步执行操作也无法解决:

julia> PlotlyJS.savefig(p)
ERROR: Unexpected character
Line: 0
Around: ...�Desea terminar el tra...
            ^

Stacktrace:
  [1] error(s::String)
    @ Base .\error.jl:35
  [2] _error(message::String, ps::JSON.Parser.MemoryParserState)
    @ JSON.Parser C:\Users\Franco\.julia\packages\JSON\93Ea8\src\Parser.jl:140
  [3] parse_jsconstant(#unused#::JSON.Parser.ParserContext{Dict{String, Any}, Int64, true, nothing}, ps::JSON.Parser.MemoryParserState)      
    @ JSON.Parser C:\Users\Franco\.julia\packages\JSON\93Ea8\src\Parser.jl:193
  [4] parse_value(pc::JSON.Parser.ParserContext{Dict{String, Any}, Int64, true, nothing}, ps::JSON.Parser.MemoryParserState)
    @ JSON.Parser C:\Users\Franco\.julia\packages\JSON\93Ea8\src\Parser.jl:170
  [5] parse(str::String; dicttype::Type, inttype::Type{Int64}, allownan::Bool, null::Nothing) 
    @ JSON.Parser C:\Users\Franco\.julia\packages\JSON\93Ea8\src\Parser.jl:450
  [6] parse
    @ C:\Users\Franco\.julia\packages\JSON\93Ea8\src\Parser.jl:443 [inlined]
  [7] savefig(p::Plot{Vector{GenericTrace{Dict{Symbol, Any}}}, Layout{Dict{Symbol, Any}}, Vector{PlotlyFrame}}; width::Nothing, height::Nothing, scale::Nothing, format::String)
    @ PlotlyJS C:\Users\Franco\.julia\packages\PlotlyJS\Jj38U\src\kaleido.jl:104
  [8] savefig(p::Plot{Vector{GenericTrace{Dict{Symbol, Any}}}, Layout{Dict{Symbol, Any}}, Vector{PlotlyFrame}})
    @ PlotlyJS C:\Users\Franco\.julia\packages\PlotlyJS\Jj38U\src\kaleido.jl:73
  [9] savefig(p::PlotlyJS.SyncPlot; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ PlotlyJS C:\Users\Franco\.julia\packages\PlotlyJS\Jj38U\src\kaleido.jl:71
 [10] savefig(p::PlotlyJS.SyncPlot)
    @ PlotlyJS C:\Users\Franco\.julia\packages\PlotlyJS\Jj38U\src\kaleido.jl:71
 [11] top-level scope
    @ REPL[56]:1

可能的解决方法

  • 检查PlotlyJS与Kaleido版本兼容性:该错误多因Kaleido进程输出解析失败导致,确保两者版本匹配,可尝试指定安装兼容版本:
    ] add PlotlyJS@0.18.10 Kaleido@0.1.0
    
  • 清理Kaleido缓存:删除Kaleido临时运行文件,路径通常为~/.julia/packages/Kaleido/[版本号]/deps/kaleido下的缓存文件,重启Julia后重试
  • 显式指定保存参数:调用savefig时明确指定保存格式与路径,避免默认参数问题:
    PlotlyJS.savefig(p, "employment_contour.png", format="png")
    
  • 检查图形数据中的特殊字符:确认results矩阵或图形布局(如标题、轴标签)是否包含非UTF-8字符,简化图形元素后测试保存
  • 切换保存后端:若Kaleido问题持续,先保存为HTML再导出图像:
    PlotlyJS.savehtml(p, "employment_contour.html")
    
    打开HTML文件后,通过浏览器自带的保存图像功能导出为所需格式

内容的提问来源于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.09 16:35:02