Отредактировано
Я не думаю, что это возможно при использовании элегантного параметра ggplot
, но буду рад оказаться ошибочным.
ОднакоВот обходной путь, который имеет желаемый эффект.Идея состоит в том, чтобы добавить невидимый слой на график с единственной точкой, которая достаточно высока на оси Y, чтобы заставить каждую панель иметь минимальный размер.В этом случае я вручную выбрал это значение как 50, но вы должны иметь возможность создать алгоритм, основанный на процентах от максимального количества или аналогичных:
df = data.frame(val=rnorm(2005), class=c(rep(c('a','b'), 1000), rep('c', 5)))
dg <- data.frame(class=c("a","b","c"), value=rep(50,3))
qplot(val, ..count.., data=df, geom='density', fill=I('black')) +
opts(strip.text.y = theme_text()) +
facet_grid(class ~ ., scales="free", space="free") +
geom_blank(data=dg, aes(x=0, y=value))
Редактировать 2 Спасибо @Thierry за подсказку использовать geom_blank
вместо geom_point
с невидимыми точками.