使用多个 y 轴时定位图例而不将它们分开

问题描述 投票:0回答:1

在 Julia 中,使用

Plots
,我想使用两个不同的 y 轴和一个 x 轴(使用
twinx()
)和一个位于下方居中的图例来绘制两个系列。

问题在于,添加图例会移动其中一个 y 轴,而不是另一个,从而将它们分开。如何在不破坏图的情况下添加图例?

我已经弄清楚如何通过在第一个系列的限制之外绘制幽灵系列来将其添加到图例中来创建共享图例(在

Plots
中也并不简单)。

MWE:

using Plots

x  = -2π:0.01:2π
y1 = sin.(x)
y2 = 2.0 .+ cos.(x)

p =
plot(        x, y1, color=:blue)
plot!(       x, y2, color=:red, ylims=(-1.0, 1.0))
axis2 = twinx()
plot!(axis2, x, y2, color=:red, label="")
plot!(legend=:outerbottom)

julia position plots.jl
1个回答
0
投票

我花了很长时间才弄清楚这一点(这就是为什么我最终发布这个问题来回答它。希望其他人能发现这很有用。)

我最终为两个图添加了下边距(将它们适当向上移动),然后使用相对坐标手动放置图例,这不会将 y 轴与 x 轴分开。

解决方案:

using Plots, Plots.PlotMeasures

x  = -2π:0.01:2π
y1 = sin.(x)
y2 = 2.0 .+ cos.(x)

p =
plot(        x, y1,      color=:blue)
plot!(       x, y2.+0.1, color=:red, ylims=(-1.0, 1.0))
axis2 = twinx()
plot!(axis2, x, y2, color=:red, label="")
plot!(bottom_margin=20mm)
plot!(legend=(0.54, -0.2))
© www.soinside.com 2019 - 2024. All rights reserved.