如何阻止Julia Plots绘图时网格自动缩放?
解决Julia Plots制作GIF时网格抖动的问题
你的问题核心是仅固定x轴范围还不够,y轴和轴的自动缩放机制仍在影响画面稳定性,试试下面几个具体方案:
同时固定x、y轴范围,关闭自动缩放
只设置xlims的话,y轴会根据每帧数据自动调整范围,导致前期网格缩放抖动。加上ylims并强制轴固定:anim = @animate for i in 1:n_frames scatter(planex[i], planey[i], markersize=1.2, aspect_ratio=:equal, xlims=(-2.5, 2.5), ylims=(-2.5, 2.5), # 匹配x轴范围,保持等比例 xaxis=:fixed, # 强制x轴不自动缩放 yaxis=:fixed # 强制y轴不自动缩放 ) end gif(anim, "output.gif", fps=15)提前初始化画布,逐帧更新(更高效)
先创建一个预设好所有固定属性的空图,之后用scatter!(带感叹号的修改型函数)逐帧添加数据,避免每次重新初始化绘图参数:using Plots # 先初始化画布,一次性设置好所有固定属性 p = plot(; xlims=(-2.5, 2.5), ylims=(-2.5, 2.5), aspect_ratio=:equal, xaxis=:fixed, yaxis=:fixed, markersize=1.2 ) # 逐帧更新数据 anim = @animate for i in 1:n_frames scatter!(p, planex[i], planey[i], markersize=1.2) end gif(anim, "output.gif", fps=15)
原理说明:之前的问题是初始帧数据范围小,y轴自动缩小了显示范围,后续数据增多后y轴才扩展到对应尺度,导致前期画面抖动。同时固定x、y轴范围并关闭自动缩放,就能让网格尺寸从第一帧开始保持完全一致。
内容的提问来源于stack exchange,提问作者NaiDoeShacks
相关产品推荐
相关产品推荐

