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再导出图像:
打开HTML文件后,通过浏览器自带的保存图像功能导出为所需格式PlotlyJS.savehtml(p, "employment_contour.html")
内容的提问来源于stack exchange,提问作者Franco Riottini
相关产品推荐
相关产品推荐

