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$
8
  • $\begingroup$ GraphicsGrid comes to mind... $\endgroup$
    – Yves Klett
    Commented Jul 8, 2014 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
    Commented Jul 8, 2014 at 11:00
  • 2
    $\begingroup$ GraphicsGrid[{ {plot1, plot3, plot2}, {SpanFromAbove, videoBox, plot4}}] but I'd use Inset probably $\endgroup$
    – Kuba
    Commented Jul 8, 2014 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
    Commented Jul 8, 2014 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
    Commented Jul 8, 2014 at 11:13

1 Answer 1

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$
1
  • $\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.
    Commented Jul 8, 2014 at 11:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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