2015-04-04 2 views
1

Я хочу показать гистограммы нескольких групп, где значения не складываются. Я делаю это:показывая scale_fill_manual с нуля

dat <- data.frame(x = seq(-3, 3, length = 20)) 
dat$y <- dnorm(dat$x) 
dat$z <- dnorm(dat$x, mean = 2) 

p <- ggplot(dat, aes(x = x)) + 
    geom_bar(aes(y = y), stat = "identity", alpha = .5, fill = "red") + 
    geom_bar(aes(y = z), stat = "identity", alpha = .5, fill = "blue") 

Я хотел бы иметь легенду заполнения, которая показывает группировки. Я не знаю, почему это не вызывает каких-либо условных обозначений (или ошибки):

p + scale_fill_manual(values = c(x = "red", z = "blue"), 
         limits = c("mean 0", "mean 2")) + 
    guides(fill=guide_legend(title.position="top")) 

Использование безымянный values дает тот же результат.

Спасибо,

Max

ответ

1

Легенда автоматически генерируется, только если карта fill к переменной с помощью aes, например, так:

library(reshape2) 
ggplot(melt(dat, "x"), aes(x = x)) + 
    geom_bar(aes(y = value, fill = variable), 
      stat = "identity", position = "identity", alpha = .5) + 
    scale_fill_manual(values = c(y = "red", z = "blue"), 
         labels = c("mean 0", "mean 2")) 

enter image description here

+0

Спасибо. Это отличное решение. – topepo

Смежные вопросы