Cambiar la escala gráfica en ggplot2

05/10/2015

Valoración: 4.95 (6070 votos)

ggplot2 es una poderosa librería de R para la creación de gráficos de alta calidad. Una de las tareas más comunes al trabajar con ggplot2 es ajustar la escala gráfica para mejorar la presentación y la interpretación de los datos. En esta información, exploraremos diversas técnicas para modificar la escala de tus gráficos, incluyendo el eje X, el eje Y, el tamaño de los puntos y otros elementos visuales.

cambiar escala grafica ggplot - Qué función de ggplot2 se utiliza para cambiar el tamaño de los puntos en un gráfico de dispersión

Índice
  1. Funciones básicas para cambiar la escala
    1. Escala continua (scale_x_continuous(), scale_y_continuous())
    2. Escala discreta (scale_x_discrete(), scale_y_discrete())
    3. Escalas de color, forma y tamaño
  2. Funciones xlim() e ylim()
  3. Tabla Comparativa de Funciones de Escala
  4. Ajustes adicionales para una mejor visualización
  5. Consultas habituales sobre escalas en ggplot2

Funciones básicas para cambiar la escala

La forma más eficiente y común de modificar la escala en ggplot2 es utilizando las funciones scale_xx_(), donde xxrepresenta el tipo de escala que se desea modificar (e.g., scale_x_continuous(), scale_y_discrete(), scale_color_gradient(), etc.). Estas funciones ofrecen un amplio control sobre diversos aspectos de la escala, como límites, etiquetas, breaks y la estética general.

Escala continua (scale_x_continuous(), scale_y_continuous())

Para variables continuas en los ejes X e Y, las funciones scale_x_continuous()y scale_y_continuous()son fundamentales. Estas funciones permiten especificar los límites del eje utilizando los argumentos limits, controlar la ubicación de las marcas (breaks) con breaksy personalizar sus etiquetas con labels. También se pueden modificar otros aspectos estéticos, como el nombre del eje ( name).

Ejemplo:

library(ggplot2)ggplot(data = datos, aes(x = variable_x, y = variable_y)) + geom_point() + scale_x_continuous(limits = c(0, 100), breaks = seq(0, 100, by = 10), labels = paste0(seq(0, 100, by = 10), "%"), name = "Porcentaje") + scale_y_continuous(limits = c(0, 50), name = "Valor")

Este código establece los límites del eje X entre 0 y 100, con marcas cada 10 unidades y etiquetas con el símbolo de porcentaje. El eje Y se limita entre 0 y 50.

Escala discreta (scale_x_discrete(), scale_y_discrete())

Cuando se trabaja con variables categóricas o discretas, las funciones scale_x_discrete()y scale_y_discrete()son las apropiadas. Estas funciones permiten controlar el orden de las categorías con el argumento limits, modificar las etiquetas con labelsy ajustar la estética general.

Ejemplo:

ggplot(data = datos, aes(x = categoria, y = valor)) + geom_bar(stat = "identity") + scale_x_discrete(limits = c("A", "B", "C"), labels = c("Categoría A", "Categoría B", "Categoría C"))

Este ejemplo ordena las categorías en el eje X como "A", "B", y "C" y modifica las etiquetas para una mejor legibilidad.

Escalas de color, forma y tamaño

ggplot2 permite un control preciso sobre la estética de los puntos, líneas y otras geometrías. Las funciones scale_color_manual(), scale_shape_manual()y scale_size_manual()permiten un control manual sobre el color, la forma y el tamaño de los elementos gráficos, respectivamente. Estas funciones son particularmente útiles cuando se desea destacar patrones o grupos específicos de datos.

Ejemplo de control manual del tamaño de los puntos:

cambiar escala grafica ggplot - Cómo cambiar la escala del eje y en R

ggplot(data = datos, aes(x = variable_x, y = variable_y, size = variable_z)) + geom_point() + scale_size_manual(values = c(2, 4, 6))

Este código asigna tres tamaños diferentes a los puntos basados en los valores de variable_z.

Funciones xlim() e ylim()

En R básico, las funciones xlim()e ylim()ofrecen una forma alternativa para modificar los límites de los ejes X e Y. Sin embargo, estas funciones son menos flexibles que las funciones scale_xx_()de ggplot2 y generalmente se recomiendan las funciones de ggplot2 para un mayor control y flexibilidad.

cambiar escala grafica ggplot - Cómo cambiar la escala en ggplot

Tabla Comparativa de Funciones de Escala

Función Tipo de Escala Descripción
scale_x_continuous() Continua Control completo sobre el eje X continuo (límites, breaks, labels).
scale_y_continuous() Continua Control completo sobre el eje Y continuo (límites, breaks, labels).
scale_x_discrete() Discreta Control sobre el eje X discreto (orden, etiquetas).
scale_y_discrete() Discreta Control sobre el eje Y discreto (orden, etiquetas).
scale_color_manual() Color Control manual sobre los colores.
scale_shape_manual() Forma Control manual sobre las formas de los puntos.
scale_size_manual() Tamaño Control manual sobre el tamaño de los puntos.
xlim() Continua Ajusta los límites del eje X (menos flexible que scale_x_continuous()).
ylim() Continua Ajusta los límites del eje Y (menos flexible que scale_y_continuous()).

Ajustes adicionales para una mejor visualización

Además de cambiar los límites, es importante considerar otros ajustes para optimizar la visualización de tus gráficos:

  • Etiquetas de los ejes: Asegúrate de que las etiquetas sean claras, concisas y fáciles de entender. Utiliza las opciones labels en las funciones scale_xx_() para personalizarlas.
  • Marcas (breaks): Selecciona un número adecuado de marcas en los ejes para evitar la sobrecarga de información. Utiliza la opción breaks para controlar la ubicación de las marcas.
  • Temas (themes): ggplot2 ofrece diversos temas ( theme_bw() , theme_classic() , etc.) que pueden mejorar la estética general del gráfico. Experimenta con diferentes temas para encontrar el que mejor se adapte a tus necesidades.
  • Leyendas: Asegúrate de que las leyendas sean claras y fáciles de interpretar. Puedes usar las funciones guides() y legend_position() para personalizar las leyendas.

Consultas habituales sobre escalas en ggplot2

A continuación, se responden algunas consultas frecuentes relacionadas con el cambio de escala en ggplot2:

  • ¿Cómo cambio la escala de un eje logarítmico? Puedes utilizar las funciones scale_x_log10() o scale_y_log10() para transformar la escala a logarítmica base
  • ¿Cómo cambio el rango de valores en un eje? Utiliza el argumento limits en las funciones scale_xx_() para especificar el rango deseado.
  • ¿Cómo puedo personalizar las etiquetas de los ejes? Usa el argumento labels en las funciones scale_xx_() para proporcionar etiquetas personalizadas.
  • ¿Cómo puedo cambiar el color de los elementos del gráfico? Usa las funciones scale_color_manual() , scale_fill_manual() , etc., para controlar el color de manera manual.

Con estas técnicas y ejemplos, podrás dominar el arte de cambiar la escala gráfica en ggplot2 y crear gráficos informativos y visualmente atractivos.

Subir