2015-07-02 13 views
8

Czy wiesz, jak zmienić etykiety w górnym panelu w pakiecie ggpairs (Ggally)? Znalazłem, jak zmienić rozmiar, czcionkę, ale nie etykietę. Tutaj chcę skrócić etykietę ("set" pour setosa etc ...). Próbowałem umieścić to w labels=c("set", "ver", "vir") lub upper=list(params=list(size=8),labels=c("set", "ver", "vir")), ale to nie działa.Zmiana etykiety w górnym panelu 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

nie mogę go przetestować, ponieważ kod nie jest [powtarzalne] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-odtwarzalny-przykład), ale możesz wypróbować 'theme (text = element_text (size = 8)) dla mniejszych etykiet. – RHA

+0

Dzięki, po prostu umieścić odtwarzalny przykład z zestawem danych tęczówki. Ale chcę zmienić etykiety (versicolor w "ver" itd.), A nie ich rozmiar. – catindri

+0

Również zmiana komputera nie daje tego samego wyniku w zapisanym obrazie! tutaj może to być poprawne, ale na moim laptopie etykiety są ukryte. – catindri

Odpowiedz

3

Konceptualnie samo jak @ Mike rozwiązanie, ale w jednym wierszu.

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

Oto kolejny, bardziej elastyczny wniosek, jeśli masz wiele poziomów i nie chcą skracać je ręcznie: stan poziomy do pożądanej długości.

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

A tak przy okazji, parametr width również wektorowy:

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

to praca, wielkie dzięki! – catindri

+0

Jezu, myślałem, że chodzi o to bez zmiany danych, które wygenerowały fabułę. –

+0

@MikeWise To samo dotyczy 'poziomów (gplt $ data $ Gatunek)'. Chodzi o to, że nie ma potrzeby powtarzania poziomów (wyobraź sobie, że istnieje 100 poziomów czynników). – tonytonov

3

To jest trochę brzydki, ale można to zrobić (zmienić nazwę poziomy w działce):

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

dziękuję, że działa również – catindri

Powiązane problemy