Hi,
is it possible to place the legend using an exact position and not being restricted to :top
, :bottom
etc with Plots.jl
and the pyplot backend? MWE:
plot([1,2,3],
legend = (2,2)
)
Somethink similar for placing the legend at (2,2)
? Thanks for your answers!
The syntax exists, but the legend location is specified as a fraction of the plotting domain, i.e. plot(legend=(0.5, 0.5))
would place it right in the middle. If you want to place it at a position determined by your data, try this (which uses internal attributes and will therefore be more fragile):
function legendloc!(p, xleg, yleg)
sp_attrs = p.subplots[1].attr.explicit
x = sp_attrs[:xaxis][:extrema]
y = sp_attrs[:yaxis][:extrema]
xloc = (xleg - x.emin)/(x.emax - x.emin)
yloc = (yleg - y.emin)/(y.emax - y.emin)
plot!(p, legend=(xloc, yloc))
end
p = plot(1:3)
legendloc!(p, 2, 2) # seems to work!
3 Likes
Hi @stillyslalom,
thanks! This is exactly what I was looking for!
jamble