Site icon R-bloggers

R & GGPLOT – Expanded Plots

[This article was first published on Darren Wilkinson » R, and kindly contributed to R-bloggers]. (You can report issue about the content on this page here)
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.

Learn how to create expanded inserts like this easily in R with this ggplot template.

>>GET THE R CODE<<

R and GGPLOT are great! There are some things, however, that I want to be able to do easily. For these things I have to create template codes, which I want to share with you!

This time around I wanted to show you how you can create “zoomed” areas of a plot and insert them into your main plot. This template will also show you how you can insert a completely different plot as an insert. This could be a table, map,….anything. This is a common thing to see in many plots, and alas now the functionality can be achieved easily.

DOWNLOAD TEMPLATE – Link to download from my script archive

Summary of the code:

DOWNLOAD TEMPLATE – Link to download from my script archive

The code is easily customised, but pay attention to areas of code that are linked into customisation parameters. When you create your own code you should link in these variables into your plot to allow easy editing! To help you out with this, parts of the plot code that contain variables linked into the customisation parameters are commented with “#IMPORTANT“. As a general rule, though, follow this workflow:

  1. Create your base plot (p1)
  2. Define the rectangular grob (using customisation variables)
  3. Copy and use theme () options from p1 in the template
  4. Duplicate p1 to create p2
  5. Copy and use the theme () options for p2 from the template

If you have any questions, please don’t hesitate to comment. If you are having problems, provide simple examples of code which exhibit the problem you’re having and I’ll do my best to look at it!

Below are some edits of the code that show you how easily things can be changed…

zoom = 2.6

pad = 3

ex.lin = “red”

zoom = 5; pad = 1; x.expand = c(3, 4); y.expand = c(13, 16), j.expand = “br”


To leave a comment for the author, please follow the link and comment on their blog: Darren Wilkinson » R.

R-bloggers.com offers daily e-mail updates about R news and tutorials about learning R and many other topics. Click here if you're looking to post or find an R/data-science job.
Want to share your content on R-bloggers? click here if you have a blog, or here if you don't.