2013-02-26 22 views
10

To pytanie jest kontynuacją "How can a data ellipse be superimposed on a ggplot2 scatterplot?".Wypełnij nałożone elipsy na wykresach rozrzutu ggplot2

Chcę utworzyć wykres rozrzutu 2D przy użyciu ggplot2 z wypełnionymi nałożonymi elipsami ufności. Korzystając z rozwiązania Etienne Low-Décarie z powyższego postu, wykonuję nałożone elipsy do pracy. Rozwiązanie jest oparte na stat_ellipse dostępnego https://github.com/JoFrhwld/FAAV/blob/master/r/stat-ellipse.R

P: Jak można napełnić wewnętrzną powierzchnię elipsy (S) określonego koloru (bardziej konkretnie, że chcą użyć kolor obramowania elipsy z pewnym alfa)?

Oto minimalne przykład pracę modyfikowany wyżej wymienionym stanowisku:

# 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() 

Wyjście przykład robocza: image of example output

+0

wypróbowałeś 'stat_ellipse (alpha = 0.4)' na przykład ...? – Arun

+0

Po prostu zaznaczone - zmienia alfa granicy elipsy, ale obszar wewnętrzny nadal nie jest wypełniony. – QkuCeHBH

+2

Domyślnie 'geom' to' ścieżka' w implementacji 'stat_ellipse'. Zastanawiam się, czy 'ścieżka' może mieć opcje' wypełnij' ... – Arun

Odpowiedz

12

Jak wspomniano w komentarzach, polygon konieczna jest tutaj:

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

enter image description here

+0

Działa dokładnie tak, jak chcesz, dzięki! – QkuCeHBH

Powiązane problemy