Los márgenes de los gráficos hechos con ggplot2 se ajustarán de manera automática a las nuevas capas, e.g. si añades un título. Hemos agregado un borde negro alrededor del gráfico de muestra para que puedas ver cómo cambian los márgenes.

library(ggplot2)

ggplot() +
  stat_function(fun = dnorm, geom = "density",
                xlim = c(-4, 4),
                fill = rgb(0, 0, 1, 0.1)) + 
  theme(plot.background = element_rect(color = 1,
                                       size = 1))

Márgenes por defecto en ggplot2

Incrementar los márgenes

Incrementar o reducir los márgenes de los gráficos de ggplot2

Para modificar los márgenes del gráfico pasa la función margin dentro del componente plot.margin de la función theme.

library(ggplot2)

ggplot() +
  stat_function(fun = dnorm, geom = "density",
                xlim = c(-4, 4),
                fill = rgb(0, 0, 1, 0.1)) + 
  theme(plot.background = element_rect(color = 1,
                                       size = 1),
        plot.margin = margin(t = 20,  # Margen superior
                             r = 50,  # Margen derecho
                             b = 40,  # Margen inferior
                             l = 10)) # Margen izquierdo

Incrementar los márgenes en centímetros en ggplot2

Los márgenes se miden con puntos ("pt"), pero puedes usar otra unidad de medida en el argumento unit, como centímetros. Escribe ?unit para ver todas las posibles medidas.

library(ggplot2)

ggplot() +
  stat_function(fun = dnorm, geom = "density",
                xlim = c(-4, 4),
                fill = rgb(0, 0, 1, 0.1)) + 
  theme(plot.background = element_rect(color = 1,
                                       size = 1),
        plot.margin = margin(t = 1,  # Margen superior
                             r = 1,  # Margen derecho
                             b = 3,  # Margen inferior
                             l = 2,  # Margen izquierdo
                             unit = "cm")) 

Eliminar los márgenes

Para eliminar los márgenes establece todos los valores a 0. Ten en cuenta que todavía quedará espacio para que entren todos los elementos del gráfico. Puedes pasar valores negativos para reducir más los márgenes.

library(ggplot2)

ggplot() +
  stat_function(fun = dnorm, geom = "density",
                xlim = c(-4, 4),
                fill = rgb(0, 0, 1, 0.1)) + 
  theme(plot.background = element_rect(color = 1,
                                       size = 1),
        plot.margin = margin(t = 0,  # Margen superior
                             r = 0,  # Margen derecho
                             b = 0,  # Margen inferior
                             l = 0)) # Margen izquierdo

Eliminar los márgenes en ggplot2

Puedes recordar el orden de los argumentos de la función margin (t, r, b, l) recordando la palabra trabalenguas.

También te puede interesar