2013-02-25 26 views
5

Kiedy zwykle używasz factor do kodowania zmiennych koloru/rozmiaru w ggplot2 w R? Przykład:Kiedy używać współczynnika() podczas drukowania za pomocą ggplot w R?

ggplot(mtcars) + geom_point(aes(x=mpg, y=drat, colour=gear)) 

porównaniu:

ggplot(mtcars) + geom_point(aes(x=mpg, y=drat, colour=factor(gear))) 

jest regułą w użyciu factor gdy zmienne wykorzystywane do określenia Kształt/rozmiar/kolor jest dyskretna, a nie ciągły? A może jest jeszcze inne zastosowanie w tym kontekście: factor? Wygląda na to, że pierwsze polecenie może zostać wykonane jako drugie z prawą legendą, nawet bez factor. dzięki.

edit: mam to kiedy używam colour=gear: enter image description here

+4

Tak, to zależy od tego, co chcesz pokazać. Jeśli masz ochotę przekazać poczucie gradacji, używaj zmiennej ciągłej, ale jeśli chcesz pokazać grupy, najbezpieczniej jest przekonwertować na czynnik. –

+1

Używaj "współczynnika", gdy masz zmienne kodowane liczbowo, które w rzeczywistości reprezentują kategorie. – Andrie

Odpowiedz

6

Kwestia nie jest legendą, jest to wybór kolorów. Gdy nie jest to czynnik, punkty są różne odcienie tego samego odcienia:

ggplot(mtcars) + geom_point(aes(x=mpg, y=drat, colour=gear)) 

enter image description here

ten komunikuje continuum punktów, a to nie jest więc idealny dla zbioru oddzielnych możliwości. (Rzeczywiście, gdy dojdziesz do pięciu lub sześciu możliwości, kolory mogą być trudne do odróżnienia od siebie).

Kiedy gearsjest traktowane jak czynnik, kolory są wybrane jako rozróżnialne:

ggplot(mtcars) + geom_point(aes(x=mpg, y=drat, colour=factor(gear))) 

enter image description here

Należy pamiętać, że jeśli nie dostajesz działki gradientu gdy nie jest używany factor, powinieneś spróbować uaktualnić do nowszej wersji ggplot2.

+0

Jak zdobyć swój pierwszy spisek? Nie dostaję legendy o gradacji, kiedy używam 'color = gear'. – user248237dfsf

+0

@ user248237: Wysłałem swój kod powyżej każdej cyfry - uważam, że jest dokładnie taki sam jak twój. Czy to możliwe, że w twojej ramie danych (wersja R?) "Przełożenie" jest już czynnikiem? Co otrzymujesz z 'klasy (mtcars $ gear)'? –

+0

Otrzymuję 'class (mtcars $ gear) [1]" numeric ", kiedy wpisuję to, co napisałeś. Używam RStudio. – user248237dfsf

Powiązane problemy