2013-02-26 17 views
10

Questa domanda è un seguito di "How can a data ellipse be superimposed on a ggplot2 scatterplot?".Riempi le ellissi sovrapposte nei diagrammi di dispersione ggplot2

Desidero creare uno schema di dispersione 2D utilizzando ggplot2 con riempito di ellissi di riservatezza sovrapposte. Usando la soluzione di Etienne Low-Décarie dal post sopra menzionato, ottengo le ellissi sovrapposte per funzionare. La soluzione si basa su stat_ellipse disponibili da https://github.com/JoFrhwld/FAAV/blob/master/r/stat-ellipse.R

D: Come posso riempire l'area interna dell'ellisse (s) con un determinato colore (più precisamente voglio usare il colore del bordo dell'ellisse con un po 'alpha)?

Ecco l'esempio di lavoro minima modificato dal post di cui sopra:

# create data 
set.seed(20130226) 
n <- 200 
x1 <- rnorm(n, mean = 2) 
y1 <- 1.5 + 0.4 * x1 + rnorm(n) 
x2 <- rnorm(n, mean = -1) 
y2 <- 3.5 - 1.2 * x2 + rnorm(n) 
class <- rep(c("A", "B"), each = n) 
df <- data.frame(x = c(x1, x2), y = c(y1, y2), colour = class) 

# get code for "stat_ellipse" 
library(devtools) 
library(ggplot2) 
source_url("https://raw.github.com/JoFrhwld/FAAV/master/r/stat-ellipse.R") 

# scatterplot with confidence ellipses (but inner ellipse areas are not filled) 
qplot(data = df, x = x, y = y, colour = class) + stat_ellipse() 

uscita di esempio funzionante: image of example output

+0

hai provato 'stat_ellipse (alpha = 0.4)', per esempio ...? – Arun

+0

Appena controllato - cambia l'alfa del bordo dell'ellisse, ma l'area interna non è ancora piena. – QkuCeHBH

+2

'geom' sembra essere' percorso' di default nell'implementazione di 'stat_ellipse'. Mi chiedo se 'percorso' possa avere opzioni' fill' ... – Arun

risposta

12

Come accennato nei commenti, è necessario qui polygon:

qplot(data = df, x = x, y = y, colour = class) + 
    stat_ellipse(geom = "polygon", alpha = 1/2, aes(fill = class)) 

enter image description here

+0

Funziona esattamente come desiderato, grazie! – QkuCeHBH

Problemi correlati