2016-04-19 13 views
5

fino ad ora non riesco a trovare una risposta adeguata, ecco la mia domanda breve di ggplot2 in R:R ggplot - l'aggiunta di tutti i punti dati a tutte le sfaccettature

data(mtcars) 
ggplot(data=mtcars, aes(x=mpg, y=wt, fill=factor(cyl))) + 
scale_fill_manual(values=c("red","orange","blue"))+ 
geom_point(size=2, pch=21)+ 
facet_grid(.~cyl) 

enter image description here

Questo è tutto bene , ora voglio tutti i punti di dati (indipendentemente dal numero di cyl) in ogni aspetto (ad esempio con un grigio uniforme sotto i punti)?

Grazie, Michael

+4

Possibile duplicato [riportando i dati di tutto all'interno di ogni sfaccettatura con sfaccettatura \ _wrap e ggplot2] (http://stackoverflow.com/questions/35550411/plotting-the-whole- data-entro-ogni-facet-using-facet-wrap-and-ggplot2) – beetroot

risposta

5

Utilizzando il link data dal @beetroot, sono stato in grado di fare qualcosa del genere:

g1 <- ggplot(data=mtcars, aes(x=mpg, y=wt)) + 
    geom_point(data=mtcars[, c("mpg", "wt")], aes(x=mpg, y=wt), colour="grey") + 
    geom_point(size=2, pch=21, aes(fill=factor(cyl))) + 
    scale_fill_manual(values=c("red","orange","blue")) + 
    facet_wrap(~cyl) 

Questo produce la trama: enter image description here

Spero che questo ti aiuta .

+0

Grazie. Elaborerò il link proposto. Grazie anche per il tuo suggerimento, ma qui ricevo: "Errore: l'estetica deve essere di lunghezza 1 o uguale ai dati (60): x, y, riempire" quando l'ho applicata in questo modo ai miei dati specifici (ma i dati la struttura è la stessa). –

+0

@mod_che: il codice che ho scritto è anche questo che ti dà un errore? Per me, funziona bene. –

+0

Funziona ora, grazie! –

3

Ecco una leggera semplificazione che semplifica la vita. L'unica cosa che devi fare è rimuovere la variabile di sfaccettatura dai dati forniti allo strato di sfondo geom_point().

library(tidyverse) 
ggplot(data=mtcars, aes(x=mpg, y=wt)) + 
    geom_point(data=select(mtcars,-cyl), colour="grey") + 
    geom_point(size=2, pch=21, aes(fill=factor(cyl))) + 
    scale_fill_manual(values=c("red","orange","blue")) + 
    facet_wrap(~cyl) 

Problemi correlati