Some tips for creating plots for publication
Check with the journal to see if they have file format requirements. You want to use a vector format not a raster format (i.e. pdf not jpg). Your figures will be more reproducible if you use the
dev.off() commands rather than saving the plot window output.
If possible, check the journal for the size options for figures (i.e 1 column width, full page width, etc.). Use those sizes when you create you figure, so it won't need to be reduced/enlarged. This will almost definitely mean using a smaller cex value than 1. Something like the following will change the baseline cex, but just for that figure:
pdf(file = "figure1.pdf", width = 3, height = 3) par(cex = 0.7) ... dev.off()
Adjust margins so that you don't have a lot of unused white space. This is especially important for multi-panel plots, but if you adjust the margins per panel, make sure that the left/right and top/bottom add up in such a way that the aspect ratio is the same.
Margins can be adjusted using 2
- mar - specifies the margins in number of lines
- mai - specifies the margins in inches
You can also specify which line (including fractional lines) axis elements like ticks, tick labels and axis labels are placed on with the
mgp. You can shorten the tick lines with
tck. For example,
par(mar = c(3, 3, 0, 0) + 0.1, mgp = c(1.5, 0.5, 0), tck = -0.03 )
Shading Regions on Plots
- Here are some nice examples using the code>polygon</code> function.
mtext()for doing your own axis labeling (you can use
lasto control the orientation, i.e. horizontal vs. vertical)
- Adding letters to panels
- A nice overview of Axes & Text