2012-03-13 4 views
1

Я пытаюсь использовать geom_ribbon для имитации поведения geom_area , но я не увенчался успехом. у вас есть какой-либо намек на то, почему следующее не работает? Я использовал заявление Хэдли от ggplot2 geom_area web pages: «Площадь участка представляет собой специальный случай geom_ribbon, где минимум диапазона фиксирован на 0, а поправка по умолчанию - на position_stacked».stacking geom_ribbon

test <- expand.grid(Param = LETTERS[1:3], x = 1:5) 
test$y <- test$x 

# Ok 
p <- ggplot(test) 
p <- p + geom_area(aes(x = x, y = y, group = Param, fill = Param), alpha = 0.3) 
p 

# not ok - initial idea 
p <- ggplot(test) 
p <- p + geom_ribbon(aes(x = x, ymin = 0, ymax = y, group = Param, fill = Param), alpha = 0.3, position = position_stack()) 
p 

Далее, как я могу посмотреть в коде функций, закодированных способом geom_XXX? мой традиционный способ дает следующее, что не очень полезно:

> geom_ribbon 
function (mapping = NULL, data = NULL, stat = "identity", position = "identity", 
    na.rm = FALSE, ...) 
GeomRibbon$new(mapping = mapping, data = data, stat = stat, position = position, 
    na.rm = na.rm, ...) 

Спасибо за вашу помощь С уважением Pascal

ответ

2

Вы просто не отобразить переменную y в вашем geom_ribbon вызова. Добавление y = y заставляет его работать на меня. В общем, geom_ribbon не требует эстетики, но я считаю, что это происходит в случае укладки. Я полагаю, что есть хорошо продуманная аргументация, почему именно, но вы никогда не знаете ...

Кроме того, весь исходный код ggplot2 на github.