Single ggplot2 plot matrix with facet_grid
data.frame that contains all columns to be displayed. This data will be melted before being passed into the function fn
aesthetic mapping (besides x
and y
). See aes()
columns to be displayed in the plot matrix
rows to be displayed in the plot matrix
function to be executed. Similar to ggpairs
and ggduo
, the function may either be a string identifier or a real function that wrap
understands.
extra arguments passed directly to fn
column and row labels to display in the plot matrix
plot matrix labels
parameter supplied to ggplot2::facet_grid
. Default behavior is "free"
# Small function to display plots only if it's interactive
p_ <- GGally::print_if_interactive
if (requireNamespace("chemometrics", quietly = TRUE)) {
data(NIR, package = "chemometrics")
NIR_sub <- data.frame(NIR$yGlcEtOH, NIR$xNIR[, 1:3])
str(NIR_sub)
x_cols <- c("X1115.0", "X1120.0", "X1125.0")
y_cols <- c("Glucose", "Ethanol")
# using ggduo directly
p <- ggduo(NIR_sub, x_cols, y_cols, types = list(continuous = "points"))
p_(p)
# using ggfacet
p <- ggfacet(NIR_sub, x_cols, y_cols)
p_(p)
# add a smoother
p <- ggfacet(NIR_sub, x_cols, y_cols, fn = "smooth_loess")
p_(p)
# same output
p <- ggfacet(NIR_sub, x_cols, y_cols, fn = ggally_smooth_loess)
p_(p)
# Change scales to be the same in for every row and for every column
p <- ggfacet(NIR_sub, x_cols, y_cols, scales = "fixed")
p_(p)
}
#> 'data.frame': 166 obs. of 5 variables:
#> $ Glucose: num 9.78 17.08 27.05 33.41 39.5 ...
#> $ Ethanol: num 40.3 39.1 37.9 37.3 36.4 ...
#> $ X1115.0: num 0.00319 0.00324 0.00317 0.00315 0.00315 ...
#> $ X1120.0: num 0.00401 0.00404 0.00398 0.00397 0.00397 ...
#> $ X1125.0: num 0.00458 0.0046 0.00457 0.00455 0.00456 ...