È possibile eseguire questa operazione in modo semplice spostando indietro dalla funzione wrapper "qplot" e utilizzando direttamente le funzioni "ggplot" e geometria.
ggplot(mtcars, aes(x=wt, y=mpg)) +
geom_point(aes(colour=factor(cyl))) +
geom_smooth(method="lm")
Fase 1: Impostare le impostazioni iniziali 'ggplot. Queste sono le impostazioni che si desidera essere predefinite per le funzioni geometriche.
ggplot(mtcars, aes(x=wt, y=mpg))
In questo caso, si utilizzano dati i 'mtcars' per tutte le geometrie con 'peso' assegnato al xe 'mpg' assegnato l'asse y. Specificando questi all'inizio, riduciamo il rischio di creare problemi quando si esegue il copia-incolla nelle funzioni geometriche.
Passaggio 2: Disegna la geometria del punto, utilizzando i fattori di "Cilindro" per colorare i punti. Questo è ciò che stava facendo la funzione 'qplot' originale, ma lo stiamo specificando un po 'più esplicitamente.
geom_point(aes(colour=factor(cyl)))
Fase 3: Disegnare il modello lineare levigata. Questo è esattamente ciò che l'OP ha scritto prima, ma ora che l'estetica della colorazione non fa più parte delle impostazioni predefinite, la modella disegna come previsto.
geom_smooth(method="lm")
Catena tutto insieme con il +
et voilà!
Per riferimento: Si potrebbe altrettanto facilmente fare questo con l'essere esplicito in ogni strato, in questo modo:
ggplot() +
geom_point(data=mtcars, aes(x=wt, y=mpg, colour=factor(cyl))) +
geom_smooth(data=mtcars, method="lm", aes(x=wt, y=mpg))
Grazie per la risposta. Io uso la funzione ggplot() piuttosto che qplot. Solo l'esempio sulla pagina web collegata ha coperto lo sfondo della mia domanda abbastanza bene. Quello che mi ha confuso qui erano diversi strati che ora capisco – moadeep
A volte invio una risposta, vedo qualcun altro ha scritto la stessa risposta esatta e penso, "Forse dovrei aspettare ancora un po 'prima di rispondere ..." – Dinre
O semplicemente più veloce :-) – alexwhan