Come impostare i limiti per gli assi nei grafici ggplot2 R?

Traccio il seguente:

library(ggplot2) carrots <- data.frame(length = rnorm(500000, 10000, 10000)) cukes <- data.frame(length = rnorm(50000, 10000, 20000)) carrots$veg <- 'carrot' cukes$veg <- 'cuke' vegLengths <- rbind(carrots, cukes) ggplot(vegLengths, aes(length, fill = veg)) + geom_density(alpha = 0.2) 

Ora dire che voglio solo tracciare la regione tra x=-5000 a 5000 , invece dell’intero intervallo.

Come lo posso fare?

Fondamentalmente hai due opzioni

 scale_x_continuous(limits = c(-5000, 5000)) 

o

 coord_cartesian(xlim = c(-5000, 5000)) 

Dove il primo rimuove tutti i punti dati al di fuori dell’intervallo dato e il secondo regola solo l’area visibile. Nella maggior parte dei casi non si vedrebbe la differenza, ma se si adatta qualcosa ai dati probabilmente cambierebbe i valori adattati.

Puoi anche usare la funzione abbreviata xlim (o ylim ), che come la prima opzione rimuove i punti dati al di fuori dell’intervallo dato:

 + xlim(-5000, 5000) 

Per maggiori informazioni controlla la descrizione di coord_cartesian .

Il cheat di ggplot2 per ggplot2 rende abbastanza chiaro. Ecco una piccola sezione di quel cheatsheet:

inserisci la descrizione dell'immagine qui

Distribuito sotto CC BY .

Nota rapida: se usi anche coord_flip() per capovolgere l’asse xe l’asse y, non potrai impostare limiti di intervallo usando coord_cartesian() perché quelle due funzioni sono esclusive (vedi qui ).

Fortunatamente, questa è una soluzione semplice; imposta i tuoi limiti all’interno di coord_flip() modo:

 p + coord_flip(ylim = c(3,5), xlim = c(100, 400)) 

Questo modifica solo l’intervallo visibile (cioè non rimuove i punti dati).