首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Plots.jl实现帧重Gifs

使用Plots.jl实现帧重Gifs
EN

Stack Overflow用户
提问于 2018-06-05 14:29:41
回答 1查看 84关注 0票数 1

我正在尝试用100帧创建一个gif,如果我正确地编码它,我认为这不会是一个问题。但是,下面的代码会减慢到爬行,并且似乎会导致内存泄漏。

代码语言:javascript
复制
using Plots
using ProgressMeter


u = rand(100,100)
hmap = heatmap(zeros(size(u)), clim=(0,1))


p = Progress(1000, 1)

anim = Animation()

for i=1:1000
    u = rand(100,100)
    heatmap!(hmap[1],u)
    if mod(i,10) == 0
        frame(anim)
    end
    next!(p)
end

gif(anim, "/tmp/anim_fps30.gif", fps=30)

我在编码中犯了一个关键错误吗?有没有一种方法可以获得动画的帧,而不把它们全部保存在内存中?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-06 17:44:36

我认为循环中较慢的部分不是frame()而是heatmap()。您的代码每帧运行热图10次。尝试:

代码语言:javascript
复制
 `using Plots     pyplot() # if needed     using ProgressMeter`
代码语言:javascript
复制
function doit()
    u = rand(100,100)
    hmap = heatmap(zeros(size(u)), clim=(0,1))
    prog = Progress(1000, 1)
    anim = Animation()
    for i=1:1000
        if mod(i,10) == 0
            heatmap!(hmap[1],rand(100,100))
            frame(anim)
        end
        next!(prog)
    end
    anim
end

gif(doit(), "/tmp/anim_fps30.gif", fps=30)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50702641

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档