我想创建多个子图,它们有自己的单独图例和共享的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...)