I am looking for advice from people who have more experience in this area on what is the best (simplest, least effort) way to create a graphic like the following:
This is a rough mockup made in a drawing program. There is a central graph, surrounded by smaller ones, each of which is showing some information about a point in the main graph. Those points are connected to the subgraphs with lines.
Each plot must be able to have their own axes/frame
Proper alignments of the connector lines (red dashed lines on the mockup)---I have the coordinates of one end in the coordinate system of the central plot, while the other end must point at the smaller plots.
Consistent font sizes and line widths (i.e. everything must be 8 pt when printed)
Vector graphics (I'd like to avoid rasterizing to bitmaps)
GraphicsGridseems to be based on
Insets in a graphic (the main issue is aligning the coordinate system of the central plot with that of the whole graphic)
Learn to use LevelScheme (I didn't use it for anything serious yet, but when I tried it last time it seemed to have issued with alignment).
Whenever I start doing something like this, and the details must be accurate, lots of small issues tend to come up. I'd like to know which approach is likely to prove the least troublesome.
The main difficulty was the correct positioning of connector lines. The usual way of including subplots is by using
Inset (which is also used by
GraphicsGrid). One endpoint of the lines is in the main graphics coordinate system, while the other is in the central subplot coordinate system. Converting between the two is very difficult and depends on the scaling of graphics.
Heike's solution uses
FullGraphics to expand the axes/frames of subplots. Then all subplots can be directly included in the main graphic and scaled to size. There will be a single coordinate system to deal with.
Chris Degnen's solution uses image processing to align the main graphic coordinate system with the inset coordinate system. It places a red dot at the desired endpoints, rasterizes the graphic, measures the position of the dot, and then uses this information to compose a vector graphic with the connector lines going between these positions. The result is a vector graphic that looks correct only at a certain scale, but can be exported to PDF.
The other solutions recommend adding the connector lines manually.