2013-08-21 12 views
5

Biorąc wykres z ggplot2 stronach pomocy:W ggplot2, jak mogę zmienić granicę wybranych aspektów?

ggplot(mtcars, aes(factor(cyl))) + geom_bar() + facet_grid(. ~ vs) 

to możliwe, aby zmienić kolor obramowania (i/lub grubości) na podstawie wybranych płyt? Chciałbym na przykład zmienić granicę aspektu "1" zmiennej aspektowej vs.

Próbowałem dodanie

theme(panel.border = element_rect(size = 3, colour = "red", fill = NA)) 

ale to rozwiązanie zmienia wszystkie granice.

Myślałem również o użyciu geom_rect lub geom_polygon, ale nie jestem pewien, jak ograniczyć to do jednego wykresu.

natknąłem się na ten thread R listy pomóc, ale rozwiązania nie działa dla mnie

Wszelkie sugestie, w jaki sposób poruszać się do przodu będzie mile widziane.

+0

może być również możliwe z roztworu z http://stackoverflow.com/questions/6750664/how-to-change-the-format-of-an-individual-ggplot2-facet-plot – radek

Odpowiedz

7

Co powiecie na wypełnienie takiego koloru?

dd <- data.frame(vs = c(0,1), ff = factor(0:1)) 
ggplot() + geom_rect(data=dd, aes(fill=ff), 
    xmin=-Inf, xmax=Inf, ymin=-Inf, ymax=Inf, alpha=0.15) + 
    geom_bar(data = mtcars, aes(factor(cyl))) + facet_grid(. ~ vs) + 
    scale_fill_manual(values=c(NA, "red"), breaks=NULL) 

enter image description here

+0

Wielkie dzięki to zadanie. – radek

1

starałem się wdrożyć granicę FACET również. Zrobiłem tylko trochę szczypanie odpowiedzi dostarczonych przez Hadley w thread o którym mowa w pytaniu, co następuje:

# Outline colours 
outline <- data.frame( 
    cyl = c(4, 6, 8), 
    outline_color = c('green', 'orange', 'red') 
) 

# Points defining square region for background 
square <- with(mtcars, data.frame( 
    x = c(-Inf, Inf, Inf, -Inf), 
    y = c(-Inf, -Inf, Inf, Inf) 
)) 

ggplot(mtcars, aes(x = mpg, y = wt)) + 
    geom_polygon(aes(x = x,y = y, color = outline_color, fill = NA), data = merge(outline, square)) + 
    geom_point() + 
    scale_fill_identity() + 
    facet_grid(. ~ cyl) 

wywołuje następujące wykres z różnych granic facet: enter image description here

Powiązane problemy