如果存在其他绘图元素,则在Makie.jsl中链接轴



我想创建多个子图,它们有自己的单独图例和共享的y轴限制。我目前正在通过以下操作创建循环中的子画面:

fig = Figure()

for i in 1:3
lines(fig[i, 1], rand(10), label="$i")
end

linkyaxes!(fig.content...)

fig

这很好,但当试图在下一个子画面中添加图例时:

fig = Figure()

for i in 1:3
lines(fig[i, 1], rand(10), label="$i")
axislegend()
end

linkyaxes!(fig.content...)

fig

这现在抛出一个错误:

MethodError: Cannot `convert` an object of type Makie.MakieLayout.Legend to an object of type Makie.MakieLayout.Axis

因为fig.content现在除了以前的原始Axis对象之外还包括Makie.MakieLayout.Legend()对象。

我需要事先过滤掉这些吗,或者有更好的方法来生成所需的情节吗?

我不确定这是最好的方法,但您可以确保以这种方式将轴传递给linkyaxes!

axs = []
fig = Figure()
for i in 1:3
ax = lines(fig[i, 1], rand(10), label="$i").axis
push!(axs, ax)
axislegend()
end
linkyaxes!(axs...)

相关内容

  • 没有找到相关文章

最新更新