Makie.jl中循环绘图时如何避免轴元素重叠?
Makie.jl循环绘图轴重叠问题的原因与解决方法
问题原因
你这段代码的核心问题是每次循环都重复创建了Axis对象:在for循环的每一轮,都执行ax = Axis(f[1, 1]),相当于在同一个布局位置f[1,1]上叠加了10个独立的轴。每个轴都自带一套y轴刻度、边框等元素,叠加后就出现了y轴元素重叠的视觉效果。
解决方法
只需要把Axis的创建逻辑移到for循环外面,确保整个绘图过程只生成一个轴,循环里仅执行绘图命令即可:
f = Figure() ax = Axis(f[1, 1]) # 只创建一次轴 for i in 1:10 density!(ax, rand(20), color = (:red, 0.0), strokecolor = :red, strokewidth = 1, strokearound = false) xlims!(ax, 0.0, 1.0) # 也可以把xlims放在循环外,避免重复设置 end f
这样所有密度线都会绘制在同一个轴上,不会出现轴元素重叠的问题。
内容的提问来源于stack exchange,提问作者Alec
相关产品推荐
相关产品推荐

