plot - 如何在 JuPyTeR 中使用 Plots.jl 制作 "animated"更新图?

标签 plot julia jupyter-notebook plots.jl

我想展示一个正在更新循环的每次迭代的图。

例如,假设我想显示随机游走。

using Plots
using IJulia

walk = [0.0]
for ii in 1:100
    step = 2rand() - 1.0
    push!(walk, walk[end]+step)
    plot(1:length(walk), walk) |> IJulia.display
    sleep(0.2) #For demo purposes
end

最终输出: random walk plot

我知道IJulia.display是强制现在显示绘图的函数, (而不是如果它是最终表达式则自动显示)。

但这只给了我 100 个图。 他们没有更新。

我不需要真正的动画,只想要更新的情节。 所以我不认为Plots animate! stuff is relevant 随机游走只是一个例子,我真正想做的是监视长时间运行的进程的状态。

最佳答案

您缺少的是在绘制下一个图之前清除输出的功能。

这是IJulia.clear_output()。 真正的技巧是它需要一个默认为 false 的 bool argument, 但如果将其设置为 true 将导致清除被延迟,直到产生下一个输出。 这将停止闪烁。

这样你的代码就变成了:

walk = [0.0]
for ii in 1:100
    step = 2rand()-1.0
    push!(walk, walk[end]+step)
    IJulia.clear_output(true) #Passing true says to wait until new ouput before clearing, this prevents flickering
    plot(1:length(walk), walk) |> IJulia.display
    sleep(0.2)

end

这并不是 100% 理想,因为在重绘之前清除输出会清除之前显示的所有其他内容。 但它通常足够方便。

关于plot - 如何在 JuPyTeR 中使用 Plots.jl 制作 "animated"更新图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46296761/

相关文章:

function - 在julia 1.0中,什么新语法?错误: { } vector syntax is discontinued

python - 我无法使用 pyodbc 从 MySQL 正确打印字符

python - 导入 pytesseract

linux - Jupyter 询问未知密码

plot - 如何在 Julia 中绘制 StatsBase.Histogram 对象?

visualization - 用 Julia 编程语言画图

r - R 中灵活的对角线图

python - Julia:将 Dict 项作为参数传递给函数

python - matplotlib imshow()和像素强度

python - 方点等高线图