【发布时间】:2018-10-29 12:04:26
【问题描述】:
我正在尝试编写一些命令行 Julia 程序来生成和保存绘图。
这行得通:
#!/usr/bin/env julia
using Plots
pyplot()
plot(1:100,1:100)
savefig("foo.png")
但这不是:
#!/usr/bin/env julia
using Plots
function main(args)
pyplot()
plot(1:100,1:100)
savefig("foo.png")
end
main(ARGS)
失败
ERROR: LoadError: MethodError: no method matching getindex(::PyPlot.Figure, ::Symbol)
The applicable method may be too new: running in world age 21855, while current world is 21864.
请多多指教!
更新 - 感谢所有建议。这是一种解决方法:
#!/usr/bin/env julia
using Plots
function main(args)
plot(1:100,1:100)
savefig("foo.png")
end
pyplot()
main(ARGS)
【问题讨论】:
-
可能是 Plots.jl 中的一个错误,请打开一个问题:github.com/JuliaPlots/Plots.jl/issues(我认为解决方法是将github.com/JuliaPlots/Plots.jl/blob/… 更改为
Base.invokelatest(func, plt, fn),但还没有测试。) -
要测试的另一件事是将
pyplot()移到函数之外。该函数调用本质上加载了 PyPlot 库,因此在某种意义上等同于using Package语句(您不会在本地范围内这样做,实际上这是一个错误),这也可能会解决您的问题.
标签: julia