Learn R Programming

cograph (version 2.7.2)

panel_layout: Configure a custom multi-panel layout

Description

Sets up a multi-panel device layout for use with cograph plotting functions called with combined = FALSE. Returns a par() snapshot of the previous device state so the caller can restore it via on.exit(graphics::par(old_par)).

Usage

panel_layout(spec, mar = c(2, 2, 3, 1), widths = NULL, heights = NULL)

Value

Invisibly returns a list of previous par() settings that can be passed back to graphics::par() to restore the prior device state. For both spec shapes the snapshot includes mfrow, so par(old_par) also resets any graphics::layout() partitioning that this call introduced.

Arguments

spec

Either a length-2 integer vector c(nrow, ncol) for a uniform grid, or a numeric matrix of panel positions to pass to graphics::layout().

mar

Numeric vector of length 4 giving panel margins. Default c(2, 2, 3, 1) matches cograph's multi-panel margin convention.

widths, heights

Optional numeric vectors of column widths and row heights. Only valid when spec is a matrix; passed straight to graphics::layout(). Supplying them with a uniform-grid spec is an error, since par(mfrow=...) has no widths/heights concept.

Combined-flag scope

panel_layout() composes with the combined = FALSE opt-out on cograph's multi-panel plot functions. Single-network calls like splot(some_tna_object) do not honor combined — there is nothing for it to gate. Pass combined = FALSE only to the multi-panel hosts: plot_netobject_group(), plot_netobject_ml(), plot_net_bootstrap_group(), plot_group_permutation(), plot_difference(), splot.net_mlvar(type = "all"), plot_network_evolution(), plot.cograph_motifs(type = "network"), plot.cograph_motif_result(type = "patterns"), plot.cograph_motif_analysis(type = "patterns"), plot.tna_disparity(type = "comparison"), and splot() on group_tna / similar list-of-plottables inputs.

Details

Use spec = c(nrow, ncol) for a uniform grid (delegates to graphics::par(mfrow = ...)). Use spec = <matrix> for a non-uniform layout (delegates to graphics::layout()); the matrix values name panel cells, so matrix(c(1, 1, 2, 3), 2, 2) produces one wide cell on top and two cells on the bottom row.

Examples

Run this code
mat <- matrix(c(0, .5, .3, .5, 0, .4, .3, .4, 0), 3, 3)
colnames(mat) <- rownames(mat) <- c("A", "B", "C")
net1 <- as_cograph(mat)
net2 <- as_cograph(mat * 0.5)

# Uniform 1 x 2 grid
op <- panel_layout(c(1, 2))
splot(net1, combined = FALSE)
splot(net2, combined = FALSE)
graphics::par(op)

Run the code above in your browser using DataLab