Este artículo explica cómo usar los temas de ggplot2 en el lenguaje de programación R. El tutorial muestra los diferentes temas predeterminados que ya proporciona el paquete ggplot2 .
Además, este tutorial proporciona varios ejemplos para crear y usar un tema personalizado para gráficos ggplot . La creación de un tema personalizado puede hacer que sea mucho más rápido replicar formatos complicados o que sea más fácil aplicar de manera consistente las pautas de la marca de la empresa a sus gráficos.
El índice completo de este tutorial se muestra a continuación:
Nota: Este artículo fue creado en colaboración con Kirby White. Kirby es un consultor e investigador de eficacia organizacional, que actualmente está cursando un doctorado. en la Universidad del Pacífico de Seattle. ¡Puedes leer más sobre Kirby aquí!
Paquetes y datos de ejemplo
Necesitará el tidyverse
paquete para este tutorial, que puede instalar install.packages("tidyverse")
y cargar con library(tidyverse)
.
Crearemos una figura simple para usar a lo largo de este tutorial, que almacenaremos en un objeto llamado fig
:
fig <- iris %>% ggplot ( aes ( x = Pétalo . Longitud , y = Pétalo . Ancho , color = Especie ) ) + geom_point ( ) |
Visión general
En ggplot, los «temas» son la manera fácil de cambiar muchas opciones de diseño del gráfico, como líneas de cuadrícula, bordes de paneles, colores de fondo y más. Si traza fig + theme_***()
, puede usar cualquiera de los nueve temas precargados para crear gráficos que se ven así:
Además de los temas precargados, puede usar la theme()
función para modificar docenas de otros atributos, como la relación de aspecto del gráfico, los títulos y el texto de los ejes, la posición y el formato de la leyenda, los subtítulos y más. Recomiendo marcar la página RDocumentation para la theme()
función para una fácil referencia para ver más opciones de personalización más allá de este tutorial.
Temas predeterminados
A veces, es posible que desee utilizar el mismo tema preconstruido en todos sus gráficos de ggplot sin necesidad de llamarlo cada vez. Puede establecer el tema predeterminado con este código:
conjunto_tema ( tema_minimal ( ) ) higo |
fig
Esto aplicará el tema elegido a todos los gráficos de ggplot durante esta sesión de R.
Si aún desea cambiar algunas cosas sobre el tema, puede usar la función theme_update() para ajustar rápidamente la configuración en su tema predeterminado. Por ejemplo, es posible que desee mostrar solo las líneas de cuadrícula principales en mis gráficos, por lo que modificaré mi tema predeterminado con este código:
theme_update ( panel . grid . minor = element_blank ( ) ) |
Objeto de tema
Establecer y modificar el tema predeterminado no es muy útil si realiza cambios con frecuencia o si está creando muchos gráficos y desea diferentes opciones de tema para cada uno de ellos. Un enfoque alternativo es personalizar y almacenar una theme()
función como un objeto R, que puede aplicar fácilmente a su gráfico:
tema_objeto <- tema ( eje . línea . x = elemento_línea ( color = "púrpura" , tamaño = 3 , tipo de línea = "discontinua" ) , eje _ línea _ y = element_line ( color = "naranja" , tamaño = 1 , tipo de línea = "punteado" ) , leyenda _ posición = "abajo" , leyenda _ título = elemento_texto ( cara = "negrita" ) ) higo + tema_objeto |
fig + theme_object
Tenga en cuenta que soy consciente de lo terrible que se ve.
Puede agregar más elementos al objeto que solo la theme()
función. Aquí, usamos un objeto R para almacenar un tema base y sus modificaciones:
objeto_tema <- tema_clásico ( familia_base = "serif" , tamaño_base = 15 ) + tema ( panel . cuadrícula . mayor . x = línea_elemento ( color = "gris" , tamaño = . 5, tipo de línea = " discontinua" ) higo + tema_objeto |
fig + theme_object
Función de tema
Para una adaptabilidad aún mayor, puede crear su propia función para devolver uno de los múltiples temas personalizados. Esto puede ser complejo, por lo que debe estar familiarizado con las funciones definidas por el usuario antes de intentar este método. Este método es mejor para cuando necesita un tema complejo o personalizado, pero también necesita poder cambiarlo con el mínimo esfuerzo.
Este ejemplo demuestra cómo crear un tema personalizado que le permita seleccionar rápidamente una de las dos opciones de borde y una de las cuatro opciones de cuadrícula:
tema_personalizado <- función ( borde = "todos" , cuadrícula = "ninguno" ) { rt <- theme_get ( ) #recupera el tema predeterminado # Determina la configuración del borde if ( border == "all" ) { rt <- rt + theme ( panel . border = element_rect ( fill = NA, color = "black" ) ) } else if ( border == "none" ) { rt <- rt + tema ( panel . borde = elemento_rect ( relleno =NA, color = NA ) ) } # Determina la configuración de la cuadrícula if ( grid == "none" ) { rt <- rt + tema ( panel . grid = element_blank ( ) ) } else if ( grid == "x-only" ) { rt <- rt + tema ( panel .cuadrícula .principal .y = elemento_en blanco ( ) , _ _ tablero _ rejilla _ menor _ y = element_blank ( ) ) } else if ( grid == "y-only" ) { rt <- rt + tema ( panel . grid . major . x = element_blank ( ) , tablero _ rejilla _ menor _ x = element_blank ( ) ) } else if ( grid == "all" ) { rt <- rt + tema ( panel . grid = element_line ( color = "gray" , size = 0.5 ) ) } volver ( rt ) } higo + tema_personalizado ( ) |
rt <- theme_get() #retrieves default theme
# Determines border settings
if(border == «all»){
rt <- rt + theme(panel.border = element_rect(fill = NA, color = «black»))
}else if(border == «none»){
rt <- rt + theme(panel.border = element_rect(fill = NA, color = NA))
}
# Determines grid settings
if(grid == «none»){
rt <- rt + theme(panel.grid = element_blank())
}else if(grid == «x-only»){
rt <- rt + theme(panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank())
}else if(grid == «y-only»){
rt <- rt + theme(panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank())
}else if(grid == «all»){
rt <- rt + theme(panel.grid = element_line(color = «gray», size = 0.5))
}
return(rt)
}
fig + custom_theme()
Ahora que hemos construido nuestra función, podemos cambiar rápidamente entre nuestras configuraciones personalizadas usando los bordes y los argumentos de cuadrícula que incluimos.
higo + tema_personalizado ( borde = "ninguno" ) |
fig + tema_personalizado ( borde = "todos" , cuadrícula = "solo x" ) |
Más recursos
En Estadisticool, puede encontrar otros artículos sobre temas de ggplot2. La siguiente lista de tutoriales muestra cómo crear diferentes tipos de gráficos, como diagramas de dispersión, diagramas de densidad, diagramas de barras, diagramas de caja, histogramas y diagramas de líneas usando diferentes temas:
- tema_bw
- tema_clásico
- tema_oscuro
- theme_economist [paquete ggthemes]
- tema_gris
- tema_luz
- tema_lineado
- tema_minimal
- tema_prueba
- tema_vacío
Además, puede echar un vistazo a las introducciones a otros paquetes que proporcionan temas adicionales para los diagramas de ggplot2:
Si está buscando consejos generales sobre cómo modificar el diseño y el estilo de los gráficos de ggplot2, puede consultar los siguientes tutoriales:
- Modificar temas de Legends of ggplot2 en R
- Dibuje el gráfico ggplot2 con diferentes colores de fondo por región
- Cambiar colores de barras en ggplot2 Barchart
- Cambiar colores de rangos en ggplot2 Heatmap
- Modificar las líneas de cuadrícula principales y secundarias del gráfico ggplot2
- Cambiar el color del fondo y el texto de la etiqueta de faceta ggplot2
- ggplot2 Parcela con fondo transparente en R
- Cambiar el color de fondo de la trama ggplot2
- Eliminar la cuadrícula, el color de fondo, los bordes superior y derecho del gráfico ggplot2
- ggplot2 Gráficos en R
Alejandro Lugón es un economista y escritor especializado en Python y R, conocido por ser el creador del blog Estadisticool. Nacido en México, Lugón se graduó de la Universidad Autónoma de México con una Licenciatura en Economía. Desde entonces ha trabajado como economista en varias empresas. Lugón también ha escrito varios libros sobre temas relacionados con la economía, el análisis de datos y la programación. Su blog Estadisticool se ha convertido en un lugar de referencia para los programadores de Python y R. Alejandro Lugón es una inspiración para aquellos que buscan aprender programación y análisis de datos. Su trabajo ha ayudado a muchas personas a entender mejor el uso de la tecnología para hacer sus trabajos.