我想创建多个具有自己的独立图例和共享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因为除了以前的原始Axis对象之外,fig.content现在还包括Makie.MakieLayout.Legend()对象。
我需要事先过滤掉这些吗,或者有没有更好的方法来生成所需的绘图?
发布于 2021-07-09 09:37:02
我不确定这是不是最好的方法,但您可以确保以这种方式将轴传递给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...)https://stackoverflow.com/questions/68308757
复制相似问题