2014-08-31 12 views
6

wykreślić następujące w R z pakietem ggvis,rozrzut badania z ggvis: jak działka wiele grup z różnymi markerami kształtu i odpowiednich dopasowanych linii regresji

enter image description here

kod jest

mtcars %>% 
    ggvis(~wt, ~mpg, fill = ~factor(cyl)) %>% 
    layer_points() %>% 
    group_by(cyl) %>% 
    layer_model_predictions(model = "lm") 

Jeśli zmienię fill do shape powyżej, nie byłoby błędem:

Error: Unknown properties: shape. 
Did you mean: stroke? 

Dlaczego? Jak osiągnąć pożądany rezultat?

+0

Jeśli nie użyjesz 'group_by' i' layer_model_predictions', ggvis może przybrać kształt. Tak więc zgaduję, że kiedy uruchamiasz LM na każdym poziomie, coś się dzieje. – jazzurro

Odpowiedz

6

Musisz określić shape w layer_points() rozmowy:

mtcars %>% 
    transform(cyl = factor(cyl)) %>% 
    ggvis(~wt, ~mpg) %>% 
    layer_points(shape = ~cyl, fill = ~cyl) %>% 
    group_by(cyl) %>% 
    layer_model_predictions(model = "lm", formula=mpg~wt) 

(Zauważ, że używam transform() przekonwertować cyl w czynnik Oznacza to, że nie trzeba konwertować cyl na czynnik. wywołanie ggvis(), a kluczem fabuła jest trochę neater.)


enter image description here

+0

W duchu 'dplyr' /' ggvis' użyłbym tutaj 'mutate()' over 'transform()'. 'mutate (cyl = factor (cyl))%>%' –

Powiązane problemy