我一直在 Jupyter 笔记本中对一些 Julia 代码进行原型设计,但它已经超出了笔记本格式,我想将其放入脚本中以便正确组织它。但是,我无法弄清楚如何让绘图在脚本中工作,也找不到任何有关它的文档。
这是一个最小的不起作用的示例:
using Plots
gr()
display(plot([1,3,2]))
println("here")
Run Code Online (Sandbox Code Playgroud)
此代码需要 20-30 秒来导入绘图,然后打开一个窗口,但立即再次关闭它,打印“此处”,然后退出。导入过程发生时我无法使用 ctrl-C。
所以,我有三个问题:
如何防止绘图窗口一打开就关闭?我想要的是脚本阻止或(理想情况下)进入事件循环,直到窗口关闭,然后终止。
能否以某种方式缩短极长的导入时间?
是否存在在 Jupyter 环境之外使用 Plots 的文档?
如果有什么不同的话,我在 Mac 上使用 julia 1.1.1。
实现您在第一个项目符号中寻找的工作流程的最自然方法是使用 Juno 或 VS Code。假设在您的工作目录中的文件中有以下代码script.jl:
using Plots
gr()
display(plot([1,3,2]))
hello = "world"
println("here")
Run Code Online (Sandbox Code Playgroud)
现在启动 Juno 或 VS Code 并启动集成的 Julia REPL。从 Julia REPL,您可以用来include获取脚本:
julia> include("script.jl")
Plot{Plots.GRBackend() n=1}
here
Run Code Online (Sandbox Code Playgroud)
现在您的脚本已完全运行,并且可以在绘图窗格中查看绘图(对于 Juno 和 VS Code 都是如此)。现在您可以继续访问includeREPL 中的其他文件或以交互方式运行其他代码。请注意,定义的变量script.jl可供使用:
julia> hello
"world"
Run Code Online (Sandbox Code Playgroud)
编辑:
如果您使用选项-i(用于交互)运行脚本,绘图 GUI 将保持打开状态,并且在脚本运行完成后将启动 REPL:
using Plots
gr()
display(plot([1,3,2]))
hello = "world"
println("here")
Run Code Online (Sandbox Code Playgroud)
Julia 可执行文件的各种选项可以在此处找到$ julia --help,或者可以通过在终端中键入来找到。