Cómo establecer los límites de los ejes en los gráficos ggplot2 R
-
Establece los límites del eje x con
scale_x_continuous
enggplot2
-
Usa
coord_cartesian
para limitar ambos ejes enggplot2
Veamos primero nuestro diagrama de dispersión sin poner ningún límite al eje. En este ejemplo, usamos el conjunto de datos del Iris para correlacionar los valores de la anchura del sépalo y la anchura del septo, categorizando las especies por color. Antes de llamar a la función ggplot
, necesitamos instalar el paquete ggplot2
y cargar la biblioteca correspondiente:
install.packages("ggplot2")
library(ggplot2)
scatter <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width))
scatter + geom_point(aes(color=Species, shape=Species)) +
ylab("Sepal Width") + xlab("Sepal Length") +
ggtitle("Correlation of Sepal Length & Width by species")
Resultado
Ahora, supongamos que queremos limitar el eje x (Longitud del Sépalo) para que el gráfico muestre sólo la región entre x=5
y x=7
. Tenemos dos opciones para hacerlo: usar scale_x_continuous
o usar coord_cartesian
.
scale_x_continuous
elimina todos los puntos de datos que caen fuera del rango especificado para el eje dado, mientras que coord_cartesiana
sólo ajusta el área visible. En la mayoría de los casos, ambas opciones darán los mismos resultados. Pero si por casualidad ajustas algo a los datos, los valores ajustados probablemente cambiarán.
Establece los límites del eje x con scale_x_continuous
en ggplot2
Para usar scale_x_continuous
, necesitas especificar un vector con los límites inferior y superior del eje x, así:
scatter <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width))
scatter + geom_point(aes(color=Species, shape=Species)) +
ylab("Sepal Width") + xlab("Sepal Length") +
ggtitle("Correlation of Sepal Length & Width by species") +
scale_x_continuous(limits = c(5, 7))
Producción:
También recibirá un mensaje de advertencia que le indicará cuántos puntos de datos se eliminan del gráfico:
Warning message:
Removed 34 rows containing missing values (geom_point).
En caso de que también quieras limitar el eje y, puedes añadir scale_y_continuous
de la misma manera, como en este ejemplo:
![Scatter-plot-with-limits-both-axis](C:\GDM\Cosas\UpWork\Dishan-Consultancy\R\Scatter-plot-with-limits-both-axis.jpg)scatter-<--ggplot(data=iris,-aes(x-=-Sepal.Length,-y-=-Sepal.Width))
scatter + geom_point(aes(color=Species, shape=Species)) +
ylab("Sepal Width") + xlab("Sepal Length") +
ggtitle("Correlation of Sepal Length & Width by species") +
scale_x_continuous(limits = c(5, 7)) +
scale_y_continuous(limits = c(2.5, 4))
La salida mostrará los límites en ambos ejes:
También puedes usar las funciones abreviadas xlim
y ylim
en lugar de scale_x_continuous
y scale_y_continuous
para hacer el comando un poco más corto:
scatter <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width))
scatter + geom_point(aes(color=Species, shape=Species)) +
ylab("Sepal Width") + xlab("Sepal Length") +
ggtitle("Correlation of Sepal Length & Width by species") +
xlim(5, 7) + ylim(2.5, 4)
Usa coord_cartesian
para limitar ambos ejes en ggplot2
Si quieres usar coord_cartesian
en lugar de scale_x_continuous
y scale_y_continuous
, el comando sería así:
scatter <- ggplot(data=iris, aes(x = Sepal.Length, y = Sepal.Width))
scatter + geom_point(aes(color=Species, shape=Species)) +
ylab("Sepal Width") + xlab("Sepal Length") +
ggtitle("Correlation of Sepal Length & Width by species") +
coord_cartesian(xlim = c(5, 7), ylim = c(2.5, 4))
Y la salida del gráfico será la misma.
En el RStudio cheatsheet de ggplot2, puedes encontrar una aclaración visual para el uso de todas las opciones de este comando.