2015-07-02 26 views
8

Sai come modificare le etichette in un pannello superiore nel pacchetto ggpairs (Ggally)? Ho trovato come cambiare dimensione, carattere ma non etichetta. Qui voglio accorciare l'etichetta ("set" pour setosa ecc ...). Ho provato a inserirlo in labels=c("set", "ver", "vir") o upper=list(params=list(size=8),labels=c("set", "ver", "vir")) ma non funziona.Cambia etichetta nel pannello superiore ggpairs

ggpairs(iris, columns=c(2:4), title="variable analysis", colour="Species", 
     lower=list(params=list(size=2)), upper=list(params=list(size=8))) 

iris DATA GGPAIRS

+1

non posso provarlo, perché il codice non è [riproducibili] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example), ma si potrebbe provare 'theme (text = element_text (size = 8))' per etichette più piccole. – RHA

+0

Grazie, ho appena messo un esempio riproducibile con set di dati iris. Ma quello che voglio è cambiare le etichette (versicolor in "ver" ecc ...), non le loro dimensioni. – catindri

+0

Inoltre, il cambio di computer non dà lo stesso risultato nell'immagine salvata! qui potrebbe essere corretto, ma sul mio portatile le etichette sono nascoste. – catindri

risposta

3

Concettualmente la stessa @ come Mike soluzione, ma in una sola riga.

levels(iris$Species) <- c("set", "ver", "vir") 
ggplairs(<...>) 

Ecco un altro, la proposta più flessibile se si hanno molti livelli e non si vuole abbreviare loro mano: livelli di allestimento ad una lunghezza desiderata.

levels(iris$Species) <- strtrim(levels(iris$Species), 3) 
ggplairs(<...>) 

E, a proposito, il parametro width è anche Vectorized:

rm(iris) 
strtrim(levels(iris$Species), c(1, 3, 5)) 
#[1] "s"  "ver" "virgi" 
+0

che funziona, grazie mille! – catindri

+0

Cribbio, pensavo che l'intero punto fosse farlo senza modificare i dati che hanno generato la trama. –

+0

@MikeWise La stessa cosa si applica ai 'livelli (gplt $ data $ Specie)'. Il punto è che non c'è bisogno di scorrere i livelli (immagina che ci siano 100 livelli di fattore). – tonytonov

3

è un po 'brutto, ma si potrebbe fare questo (rinominare i livelli nella trama):

library(GGally) 
gplt <- ggpairs(iris, columns=c(2:4), 
     title="variable analysis", 
     colour="Species", 
     lower=list(params=list(size=2)), 
     upper=list(params=list(size=6))) 

levels(gplt$data$Species)[levels(gplt$data$Species)=="versicolor"] <- "ver" 
levels(gplt$data$Species)[levels(gplt$data$Species)=="virginica"] <- "vir" 
levels(gplt$data$Species)[levels(gplt$data$Species)=="setosa"] <- "set" 

print(gplt) 

enter image description here

+0

grazie anche a – catindri