Come impostare i limiti degli assi nei grafici ggplot2 R
-
Imposta i limiti dell’asse x con
scale_x_continuous
inggplot2
-
Usa
coord_cartesian
per limitare entrambi gli assi inggplot2
Vediamo prima il nostro grafico a dispersione senza porre alcun limite all’asse. In questo esempio, utilizziamo il set di dati Iris per correlare i valori della larghezza del sepalo e la larghezza del sepalo, classificando le specie in base al colore. Prima di chiamare la funzione ggplot
, dobbiamo installare il pacchetto ggplot2
e caricare la libreria corrispondente:
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")
Produzione:
Ora, supponiamo di voler limitare l’asse x (Sepal Length) in modo che il grafico mostri solo la regione tra x=5
e x=7
. Abbiamo due opzioni per farlo: usando scale_x_continuous
o usando coord_cartesian
.
scale_x_continuous
rimuove tutti i punti dati che non rientrano nell’intervallo specificato per l’asse dato, mentre coord_cartesian
regola solo l’area visibile. Nella maggior parte dei casi, entrambe le opzioni renderanno gli stessi risultati. Ma se ti capita di adattare qualcosa ai dati, i valori adattati probabilmente cambierebbero.
Imposta i limiti dell’asse x con scale_x_continuous
in ggplot2
Per utilizzare scale_x_continuous
, è necessario specificare un vettore con i limiti inferiore e superiore dell’asse x, in questo modo:
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))
Produzione:
Riceverai anche un messaggio di avviso che ti dice quanti punti dati vengono eliminati dal grafico:
Warning message:
Removed 34 rows containing missing values (geom_point).
Nel caso in cui desideri limitare anche l’asse y, puoi aggiungere scale_y_continuous
allo stesso modo, come in questo esempio:
![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))
L’output mostrerà i limiti su entrambi gli assi:
Puoi anche usare le funzioni abbreviate xlim
e ylim
invece di scale_x_continuous
e scale_y_continuous
per rendere il comando un po’ più breve:
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
per limitare entrambi gli assi in ggplot2
Se vuoi usare coord_cartesian
invece di scale_x_continuous
e scale_y_continuous
, il comando sarà questo:
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))
E l’output della trama sarà lo stesso.
Nel RStudio cheatsheet di ggplot2, puoi trovare chiarimenti visivi per l’uso di tutte le opzioni per questo comando.