Come impostare i limiti degli assi nei grafici ggplot2 R

Gustavo du Mortier 16 febbraio 2024
  1. Imposta i limiti dell’asse x con scale_x_continuous in ggplot2
  2. Usa coord_cartesian per limitare entrambi gli assi in ggplot2
Come impostare i limiti degli assi nei grafici ggplot2 R

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:

R ggplot2 Grafico a dispersione senza limiti di assi

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:

R ggpolot2 - Grafico a dispersione con limiti degli assi

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:

R ggpolot2 - Grafico a dispersione con 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.

Articolo correlato - R Plot