How can I get Overlay to position graphics according to coordinates?

You can get the desired result using a combination of ImageSize in the original image and the Alignment option in Overlay. (I am not 100% sure why the alignment isn't quite right.)

graphics1 = 
 Graphics[{Red, Disk[{0, 0}, 3, {0, Pi/4}]}, ImageSize -> 100]; 
graphics2 = 
 Graphics[{Blue, Disk[{0, 0}, 10, {0, Pi/2}]}, ImageSize -> 250]; 
Overlay[{graphics2, graphics1}, Alignment -> Bottom]

enter image description here

The issue here is that overlay will set the sizes of the two images to be the same if it has no information requiring it to do otherwise. So the coordinate systems of the two graphics can differ. This is why Show works more seamlessly here: it forces the two graphics to have the same coordinate system.


Can you use Show? It produces the same thing as your first plot:

Graphics1 = Graphics[{Red, Disk[{0, 0}, 3, {0, Pi/4}]}];  
graphics2 = Graphics[{Blue, Disk[{0, 0}, 10, {0, Pi/2}]}];  
Show[{graphics2, graphics1}]

Mathematica graphic

If you want to add other options, it works as well:

Show[{graphics2, graphics1}, PlotRange->{{-10, +10}, {-10, +10}}]

Mathematica graphic

You should note that Show is order dependent. It draws it in the order that's specified

Tags:

Graphics