在朱莉娅的脚本中使用剧情

时间:2019-05-22 02:18:17

标签: julia plots.jl

我已经在Jupyter笔记本中制作了一些julia代码的原型,但是它已经超出了笔记本的格式,我想将其放入脚本中以正确组织它。但是,我无法弄清楚如何使Plots在脚本中工作,也找不到有关它的任何文档。

这是一个最小的无效示例:

using Plots
gr()
display(plot([1,3,2]))
println("here")

此代码需要20到30秒的时间来导入绘图,然后打开一个窗口,但立即将其再次关闭,在“此处”打印并退出。导入过程发生时,我无法使用ctrl-C。

所以,我有三个问题:

  • 如何防止绘图窗口在打开后立即关闭?我想要的是脚本阻止或(理想情况下)进入事件循环,直到窗口关闭,然后在那之后终止。

  • 是否可以以某种方式减少极长的导入时间?

  • 在Jupyter环境之外是否存在任何有关使用图的文档?

如果有所作为,那么我在Mac上使用的是julia 1.1.1。

2 个答案:

答案 0 :(得分:1)

实现第一个项目符号所需的工作流的最自然的方法是使用Juno或VS Code。假设在工作目录中,文件script.jl中包含以下代码:

using Plots
gr()
display(plot([1,3,2]))

hello = "world"

println("here")

现在启动Juno或VS Code并启动集成的Julia REPL。在Julia REPL中,您可以使用include来获取脚本:

julia> include("script.jl")
Plot{Plots.GRBackend() n=1}
here

现在您的脚本已完全运行,并且可以在绘图窗格中查看该绘图(对于Juno和VS Code都是如此)。现在,您可以继续在REPL中include个其他文件或以交互方式运行其他代码。请注意,script.jl中定义的变量可以使用:

julia> hello
"world"

编辑:

如果使用-i选项运行脚本(用于交互式),则脚本运行完成后,绘图GUI将保持打开状态,并且REPL将启动:

$ julia -i script.jl

Julia可执行文件的各种选项可以是found here,也可以通过在终端中键入$ julia --help来找到。

答案 1 :(得分:1)

可以通过提前编译Plots.jl软件包并使用PackageCompiler.jl软件包将其烘焙到julia可执行文件中来消除导入时间。这是包网站的链接

https://julialang.github.io/PackageCompiler.jl/dev/

请参阅有关如何执行此操作的教程,第一个教程是有关编译语法突出显示包的。那将替换您的默认“ sysimage”。第二个教程是关于在编译Plots.jl的过程中创建一个可加载的“ sysimage”,并以该“ sysimage”开始Julia,这样就不必再次编译Plots.jl。

但是我无法获得第二个“可加载的系统映像”,因此即使对于Plots.jl,我也使用了第一种教程方式。

更改之后,使用Plots和plot()基本上是即时的。