3
$\begingroup$

I have 4 plots/schematics. They are either created with ArrayPlot[], ParametricPlot3D[] or Graphics[]. As I play with calculation resolutions their absolute sizes will change. I would like a neat way to arrange them inside a YouTube sized box (1920 x 1080) using relative positioning so that when/if they change size the final combination still looks more or less how I want.

To simplify the question let's say I have:

videoBox = Graphics[{EdgeForm[Thick], White, Rectangle[{0, 0}, {1920,1080}]}];
plot1 = Graphics[{Blue, Rectangle[{0, 0}, {2, 3}]}];
plot2 = Graphics[{Red, Disk[{0, 0}, 2]}];
plot3 = Graphics[{Orange, Disk[{0, 0}, 2]}];
plot4 = Graphics[{Gray, Rectangle[{0, 0}, {2, 1}]}];
GraphicsRow[{videoBox, plot1, plot2, plot3, plot4}]

Using relative positioning I would like to combine them to look something like:

Any suggestions?

Update 1

The answers and suggestions have certainly helped, but I still need more control over the positioning. For example here is the actual image I have created using the suggestions so far:

Close but no cigar. I would like to move the blue and red dots schematic up so that the bottom lines up with the bottom of the rectangular box plot.

$\endgroup$
  • $\begingroup$ GraphicsGrid comes to mind... $\endgroup$ – Yves Klett Jul 8 '14 at 10:56
  • $\begingroup$ Yeah. I thought about that, but couldn't think how to get round problem of wanting the blue rectangle to take up two rows. $\endgroup$ – Tom Jul 8 '14 at 11:00
  • 2
    $\begingroup$ GraphicsGrid[{ {plot1, plot3, plot2}, {SpanFromAbove, videoBox, plot4}}] but I'd use Inset probably $\endgroup$ – Kuba Jul 8 '14 at 11:02
  • $\begingroup$ That didn't seem to quite work. Oh but that's a good tip, I get how that works now, will have a play :) $\endgroup$ – Tom Jul 8 '14 at 11:06
  • $\begingroup$ GraphicsGrid[{{plot1, plot3, plot2},{SpanFromAbove,plot4,SpanFromLeft}}] gives me more or less what I want just not with it inside and filling up the videoBox $\endgroup$ – Tom Jul 8 '14 at 11:13
2
$\begingroup$
plot1 = Graphics[{Blue, Rectangle[{0, 0}, {2, 4}]}];
plot2 = Graphics[{Red, Disk[{0, 0}, 2]}];
plot3 = Graphics[{Orange, Disk[{0, 0}, 2]}];
plot4 = Graphics[{Gray, Rectangle[{0, 0}, {2, 1}]}];

GraphicsGrid[{{plot1, plot3, plot2}, {SpanFromAbove, plot4, 
   SpanFromLeft}}, Frame -> True, FrameStyle -> Thick] 

enter image description here

$\endgroup$
  • $\begingroup$ Just to be clear, the caveats with this answer are: Changed the size of the blue rectangle and the frame is not the videoBox graphic given in the question. $\endgroup$ – C. E. Jul 8 '14 at 11:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.