Color de fondo en ggplot2

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()

Color de fondo por defecto en ggplot2

Color del panel

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.

Cambiar el color de fondo del panel en ggplot2

library(ggplot2)

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

Color del borde del panel

Opción 1

Color del borde del panel en ggplot2

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

Color de borde en ggplot2

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

Color de fondo

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.

Color de fondo de la figura en ggplot2

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

Color del borde del gráfico

Borde del gráfico en ggplot

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

Cambiando los colores con temas

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).

Cambia el color de un gráfico con un tema de ggplot2

Selector de color

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.

Data Sketches

A journey of imagination, exploration, and beautiful data visualizations

Comprar en Amazon
Fundamentals of Data Visualization

A Primer on Making Informative and Compelling Figures

Comprar en Amazon
ggplot2

Elegant Graphics for Data Analysis

Comprar en Amazon
Storytelling con Datos

Visualización de datos para profesionales

Comprar en Amazon

También te puede interesar