我希望能够暂停我的程序,以便让Makie.jl窗口有时间在屏幕上呈现,这样我就可以看到我对它所做的更改。我该怎么做呢。
发布于 2019-09-18 11:33:49
简单的答案是使用sleep(t),其中t是以秒为单位的睡眠时间,或者更正式地说,是您想要阻止当前任务运行的持续时间。下面是一个突出sleep()强大功能的有趣示例:
using Makie
x = range(0, stop = 2pi, length = 80)
f1(x) = sin.(x)
f2(x) = exp.(-x) .* cos.(2pi*x)
y1 = f1(x)
y2 = f2(x)
scene = lines(x, y1, color = :blue)
scatter!(scene, x, y1, color = :red, markersize = 0.1)
lines!(scene, x, y2, color = :black)
scatter!(scene, x, y2, color = :green, marker = :utriangle, markersize = 0.1)
display(scene)

sleep(10)
pop!(scene.plots)
display(scene)

sleep(10)
pop!(scene.plots)
display(scene)

您可以看到上面的图像,这些图像显示了如何使用pop()逐步撤消绘图。关于sleep()的关键思想是,如果我们没有使用它(你可以通过运行删除它的代码来自己测试它),由于渲染时间的原因,屏幕上显示的第一个也是唯一的图像将是上面的最终图像。
您可以看到,如果运行此代码,窗口将呈现,然后休眠10秒(以便让它有时间呈现),然后使用pop!()回退绘图。
这也可能是this post的一个很好的参考示例。
https://stackoverflow.com/questions/57984694
复制相似问题