2014-08-31 11 views
6

Per tracciare la seguente in R con il pacchetto ggvis,Scatter in R con ggvis: come trama più gruppi con differenti marcatori di forma e corrispondenti linee di regressione

enter image description here

il codice è

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

Se cambio la fill al shape in quanto sopra, non ci sarebbe un errore:

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

Perché? Come raggiungere il risultato desiderato?

+0

Se non si usano 'group_by' e' layer_model_predictions', ggvis può prendere forma. Quindi, sto indovinando, quando esegui lm per ogni livello di cyl, qualcosa sta succedendo. – jazzurro

risposta

6

è necessario specificare il shape nella layer_points() chiamata:

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) 

(Si noti che io uso transform() convertire cyl in un fattore Questo significa che non c'è bisogno di convertire i cyl in un fattore in. la chiamata ggvis(), e la chiave trama è un po 'più ordinato.)


enter image description here

+0

Nello spirito 'dplyr' /' ggvis', userei 'mutate()' su 'transform()' qui. 'mutate (cyl = factor (cyl))%>%' –

Problemi correlati