I have a Plot with an ImagePadding that leaves enought space outside the Frame where I want to write something. I want to use scaled coordinates, so I guess ImageScaled is what I need. Unfortunately, it works well for Graphics, not for Plot. See examples, where the first Plot/Graphics use ImageScaled and the second ones use Scaled:
{Plot[Sin[x], {x, -2, 2},
ImageSize -> 400,
PlotRangePadding -> 1,
ImagePadding -> 50,
Frame -> True,
Epilog -> {Text["ImageScaled", ImageScaled[{.1, .2}], {0, 1}]}],
Plot[Sin[x], {x, -2, 2},
ImageSize -> 400,
PlotRangePadding -> 1,
ImagePadding -> 50,
Frame -> True,
Epilog -> {Text["ImageScaled", Scaled[{.1, .2}], {0, 1}]}]}
As you can see in the first plot the text "ImageScaled" is not shown outside the framework, as it should do. For that is not correctly visible. While, using Graphics it works correctly:
{Graphics[{Text["ImageScaled", ImageScaled[{.1, .1}], {0, 1}], Circle[]},
Frame -> True,
ImageSize -> 400,
PlotRangePadding -> 1,
ImagePadding -> 50 ],
Graphics[{Text["ImageScaled", Scaled[{.1, .1}], {0, 1}], Circle[]},
Frame -> True,
ImageSize -> 400,
PlotRangePadding -> 1,
ImagePadding -> 50 ]}
So, the question is: am I doing any mistake? Is there another approach I can use to write something outside the Frame of a Plot (e.g. in the area defined by ImagePadding).


Show[Graphics[Text],Plot[]]? – Feyre Sep 06 '16 at 08:57Options[#, PlotRangeClipping] & /@ {Graphics, Plot}– Kuba Sep 06 '16 at 08:58ImageScaled. Use thePlotRangeClippingoption to control whether elements outside the frame should be drawn. – Szabolcs Sep 06 '16 at 09:00