2015-07-02 12 views
8

Wissen Sie, wie Sie die Etiketten in einem oberen Bedienfeld im ggpairs (Ggally Paket) ändern können? Ich fand heraus, wie man Größe, Schriftart, aber nicht Label ändert. Hier möchte ich das Etikett kürzen ("set" pour setosa etc ...). Ich habe versucht, das in labels=c("set", "ver", "vir") oder upper=list(params=list(size=8),labels=c("set", "ver", "vir")) zu setzen, aber es funktioniert nicht.Etikett in ggpairs oberes Bedienfeld ändern

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

ich es nicht testen, weil der Code nicht [reproduzierbar] (http://stackoverflow.com/questions ist/5963269/how-to-make-a-great-r-reproduzierbar-Beispiel), aber Sie könnten versuchen, theme (text = element_text (size = 8)) 'für kleinere Etiketten. – RHA

+0

Danke, ich habe nur ein reproduzierbares Beispiel mit Iris-Datensatz eingefügt. Aber ich möchte die Etiketten ändern (versicolor in "ver" etc ...), nicht ihre Größe. – catindri

+0

Auch die Änderung des Computers geben nicht das gleiche Ergebnis in das Bild gespeichert! hier könnte es stimmen, aber auf meinem Laptop sind Etiketten versteckt. – catindri

Antwort

3

Konzeptionell das gleiche wie @ Mike Lösung, aber in einer Zeile.

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

Hier ist eine andere, flexiblere Vorschlag, wenn Sie viele Ebenen haben und wollen sie nicht von Hand abzukürzen: Ausstattungsvarianten auf eine gewünschte Länge.

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

Und übrigens, der width Parameter wird auch vektorisiert:

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

das ist Arbeit, vielen Dank! – catindri

+0

Jeez, ich dachte, der ganze Punkt würde es tun, ohne die Daten zu ändern, die die Handlung erzeugten. –

+0

@MikeWise Das gleiche gilt für 'levels (gplt $ data $ Species)'. Der Punkt ist, es gibt keine Notwendigkeit, über Ebenen zu iterieren (stellen Sie sich vor, es gibt 100 Faktorstufen). – tonytonov

3

Es ist ein bisschen hässlich, aber man konnte tun dies (die Ebenen in der Handlung umbenennen):

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

danke das funktioniert auch – catindri