I have created a couple of two-variable plots of the form f(x,y)=x*y
where there's a number of result curves, each representing an answer (image example below).
Now, usually those plots have at least 10 curves, so it is imperative to have them labelled properly. I have come up with a solution of the form:
results = {10, 20, 50, 500};
range = {100, 3.5};
Plot[y = #1/x, {x, 0, range[[1]]}, PlotLabel -> "x*y", PlotRange -> {0, range[[2]]},
Epilog -> Table[
Inset[
Framed[Results[[n]], Background -> White],
{Sqrt[Results[[n]]*range[[1]]/range[[2]]],
Results[[n]]/Sqrt[Results[[n]]*range[[1]]/range[[2]]]
}],
{n, Dimensions[Results][[1]]}
]
] &@Results
This produces a following result:
The seemingly confusing part when I specify the Inset coordinates is in fact a search of points where the result curves intersect with a linear function that cuts the plot quadrant in half.
I am satisfied with the aesthetics of this solution. I would like to duplicate the same plug-n-play effect for plots with log scaling: LogLinearPlot, LogPlot and LogLogPlot. However, after dabbling with it for the better part of today, I reached a moment when my confusion just made me forget everything and anything I know about log functions and plots. Anyone to the rescue?
LogLinearPlot[y = #1/x, {x, 1, 1000}] &@Results
Thanks in advance, r.