disp: Generate a grid layout for panel plots

Description Usage Arguments Details Value Examples

View source: R/disp.r

Description

For a given number of plots to be displayed in a panel, this function suggests inputs for the par(mfrow) graphic option.

Usage

1
disp(n, horiz = FALSE)

Arguments

n

number of plots to be displayed

horiz

should horizontal growth be favored instead of vertical (default)

Details

This simple function is designed to generate the "squarest" layout grid given the number of plots to be displayed in the same panel. If n has an integer square root, the dimensions are simply sqrt(n) x sqrt(n). Otherwise, the function starts from the next smaller square grid and adds progressively more rows.

Value

disp returns a vector of length two that indicates the number of rows and columns to be passed to par(mfrow).

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# Example with a random number of plots
n <- sample(2:16, 1)
par(mfrow = disp(n), mar = c(2,2,2,2))
for(i in 1:n){
  plot(rnorm(100),rnorm(100))
}
par(mfrow = c(1,1), mar = c(5,4,4,2) + .1)

# Display grid for up to 20 plots
par(mfrow = disp(20), mar = c(2,2,2,2))
for(i in 1:20){
  mat <- matrix(NA,nrow = disp(i)[1], ncol = disp(i)[2])
  image(mat, axes = FALSE, main = i)
  grid(nx = disp(i)[1], ny = disp(i)[2], col = 1)
  box()
}
par(mfrow = c(1,1), mar = c(5,4,4,2) + .1)

MortHump documentation built on Jan. 24, 2018, 6:02 p.m.