View source: R/sm_put_together.R
| sm_put_together | R Documentation | 
'sm_put_together' combines multiple ggplot objects into a single composite figure. The function optimizes the layout by considering the presence of tick labels and axis labels in the input plots, ensuring a clean and well-aligned output.
sm_put_together(
  all_plots,
  title = NULL,
  xlabel = NULL,
  ylabel = NULL,
  legend = NULL,
  ncol = NULL,
  nrow = NULL,
  xlabel2 = NULL,
  ylabel2 = NULL,
  tickRatio = NULL,
  panel_scale = 0.9,
  wRatio = NULL,
  hRatio = NULL,
  hmargin = 0,
  wmargin = 0,
  remove_ticks = "some",
  wRatio2 = NULL,
  hRatio2 = NULL,
  labelRatio = 1
)
all_plots | 
 A list of ggplot objects to be combined. Each plot should ideally include tick labels on both x and y axes to allow the function to optimize the layout effectively.  | 
title | 
 A ggplot layer or character string specifying the title of the combined figure. If supplied as a string, the function dynamically adjusts its size and placement. Optional.  | 
xlabel | 
 A ggplot layer or character string specifying the label for the x-axis of the combined figure. Optional.  | 
ylabel | 
 A ggplot layer or character string specifying the label for the y-axis of the combined figure. Optional.  | 
legend | 
 A ggplot legend layer to be added to the combined figure. Optional.  | 
ncol | 
 Number of columns in the combined figure grid. If not supplied, the function determines this based on the number of plots.  | 
nrow | 
 Number of rows in the combined figure grid. If not supplied, the function determines this based on the number of plots.  | 
xlabel2 | 
 A secondary x-axis label layer or character string. Optional.  | 
ylabel2 | 
 A secondary y-axis label layer or character string. Optional.  | 
tickRatio | 
 A scaling factor for tick label size. By default, this is adjusted dynamically based on the number of rows and columns in the grid. Larger values increase tick label size. Optional.  | 
panel_scale | 
 A numeric value between 0 and 1 that scales the individual panels to reduce empty space within and around each panel. Default is '0.9'.  | 
wRatio | 
 A scaling factor for the width of the first column relative to other columns. By default, this is computed based on the input plots. Users can override it with a numeric value. Optional.  | 
hRatio | 
 A scaling factor for the height of the last row relative to other rows. By default, this is computed based on the input plots. Users can override it with a numeric value. Optional.  | 
hmargin | 
 Vertical margin between subplots. Positive values increase the spacing, while negative values reduce it. Default is '0'.  | 
wmargin | 
 Horizontal margin between subplots. Positive values increase the spacing, while negative values reduce it. Default is '0'.  | 
remove_ticks | 
 Specifies whether to remove ticks from the inner panels: '"some"' (default) removes ticks only from inner plots, '"all"' removes ticks from all plots, and '"none"' keeps all ticks.  | 
wRatio2 | 
 A scaling factor for the width of the last column relative to other columns. By default, this is computed based on the input plots. Optional.  | 
hRatio2 | 
 A scaling factor for the height of the first row relative to other rows. By default, this is computed based on the input plots. Optional.  | 
labelRatio | 
 A scaling factor for the text size of titles, axis labels, and secondary labels when provided as character strings. Default is '1'. Larger values increase text size proportionally.  | 
Users can supply custom titles and axis labels either as ggplot layers created with 'sm_common_xlabel()', 'sm_common_ylabel()', and 'sm_common_title()' or as character strings directly. The function attempts to adjust the size and placement of titles and labels dynamically based on the input plots.
While the 'all_plots' argument is required, all other arguments are optional, and defaults are provided for most parameters.
A composite ggplot object combining the input plots into a grid layout.
library(smplot2)
library(ggplot2)
ggplot(data = mtcars, mapping = aes(x = drat, y = mpg)) +
geom_point(shape = 21, fill = '#0f993d', color = 'white',
          size = 3) -> p1
ggplot(data = mtcars, mapping = aes(x = drat, y = mpg)) +
  geom_point(shape = 21, fill = '#0f993d', color = 'white', size = 3) +
  sm_hvgrid() -> p2
title <- sm_common_title('My title')
xlabel <- sm_common_xlabel('My x-axis')
ylabel <- sm_common_ylabel('My y-axis')
sm_put_together(list(p1,p2), title=title, xlabel=xlabel,
                ylabel=ylabel, ncol=2,nrow=1)
sm_put_together(list(p1,p2), title='My title', xlabel='My x-axis',
                ylabel='My y-axis', labelRatio = 1.1, ncol=2,nrow=1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.