Gráfico por defecto
Por defecto, los gráficos de ggplot2 tienen un panel gris y un fondo blanco.
library(ggplot2)
# Datos de muestra
set.seed(123)
x <- 1:220
y <- x + rnorm(220, sd = 50)
df <- data.frame(x = x, y = y)
# Gráfico
ggplot(data = df, aes(x = x, y = y)) +
geom_point()

Puedes cambiar el color de fondo del panel estableciendo un element_rect en el componente panel.background de la función theme de la siguiente manera.

library(ggplot2)
ggplot(data = mtcars, aes(x = mpg, y = cyl))+
geom_point() +
theme(panel.background = element_rect(fill = "#67c9ff"))
Opción 1

El componente panel.border de la función theme controla el color y el ancho del borde del panel con los argumentos color y size. Sin embargo, tendrás que establecer fill = "transparent" para evitar ocultar los datos.
library(ggplot2)
ggplot(data = df, aes(x = x, y = y)) +
geom_point() +
theme_bw() +
theme(panel.border = element_rect(fill = "transparent", # Necesario para agregar el borde
color = 4, # Color del borde
size = 2)) # Ancho del borde
Opción 2

También puedes establecer un element_rect para el componente panel.background y modificar el color del borde con el argumento color. Sin embargo esto no es lo recomendable, ya que no se sobrescribe el color del borde actual. Puedes comprobarlo con theme_bw (observa que el borde negro está detrás del azul).
library(ggplot2)
ggplot(data = df, aes(x = x, y = y)) +
geom_point() +
theme_bw() +
theme(panel.background = element_rect(color = 4, # Color del borde
size = 2)) # Ancho del borde
El componente plot.background de la función theme permite modificar el color de fondo de la figura. Establece el color dentro del argumento fill de element_rect.

library(ggplot2)
ggplot(data = mtcars, aes(x = mpg, y = cyl))+
geom_point() +
theme(plot.background = element_rect(fill = "gray86")) # Color de fondo de la figura

También puedes establecer un color para el borde de toda la figura. Para ello pasa un element_rect al componente plot.background de la función theme y modifica el color y el ancho del borde con los argumentos color y size, respectivamente.
library(ggplot2)
ggplot(data = df, aes(x = x, y = y)) +
geom_point() +
theme(plot.background = element_rect(color = "black", # Color del borde
size = 2)) # Ancho del borde
Vale la pena mencionar que existen montones de temas de ggplot2 disponibles que proporcionan distintos colores de fondo.
En este ejemplo hemos seleccionado el tema theme_dark, que es uno de los temas predefinidos de ggplot2.
library(ggplot2)
ggplot(data = df, aes(x = x, y = y)) +
geom_point() +
theme_dark()
Ten en cuenta que el tema por defecto es theme_grey (o theme_gray).

Usa los selectores de color para cambiar el color del panel (izquierda) y el color de la figura (derecha) o genera colores aleatorios presionando el botón azul. Luego puedes copiar los colores y usarlos en tus gráficos.
También te puede interesar