Прозрачность в ключах легенды boxplot с использованием R и ggplot2 - PullRequest
8 голосов
/ 14 декабря 2011

Я пытаюсь сделать коробочки с прозрачной заливкой и соответствующей легендой. Графика с альфа-значениями работает нормально, за исключением того, что ключи легенды не имеют прозрачных заливок. Следующий пример иллюстрирует сложность:

dat <- data.frame(x=c('a', 'b', 'c'), y = runif(300), z = c('d', 'e', 'e'))
ggplot(dat) + geom_boxplot(aes(x, y, fill = z, colour = z), alpha = 0.2)

Boxplot with transparencies in fill, but not int the legend

Есть ли способ сделать прозрачными значения заливки в ключах легенды?

SessionInfo()
R version 2.14.0 (2011-10-31)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
ggplot2_0.8.9

Заранее благодарим за любые советы по этому вопросу.

Примером, где работает альфа-отображение, является следующий

ggplot(dat) + geom_point(aes(x, y, fill = z, colour = z, shape = z), alpha = 0.2)

Plot where alpha mapping works fine

1 Ответ

1 голос
/ 30 декабря 2011

Решение, которое я использовал в прошлом, это ... это огромный взлом, но работает.

dat <- data.frame(x=c('a', 'b', 'c'), y = runif(300), z = c('d', 'e', 'e'))
dummy <- dat
dummy$z <- factor(dummy$z)
dummy <- dummy[1,]
dummy[,2]<-NaN
ggplot() + 
geom_boxplot(data=dat,aes(x, y, fill = z, colour = z), alpha = 0.2,legend=FALSE) +
geom_density(data=dummy,aes(x, fill = z, colour = z), alpha = 0.2)

Обычно я использую его, когда создаю график geom_text, но хочу, чтобы легенда отображалась в виде точек или блоков. Но это работает и для этого экземпляра.

В случае, если Хэдли обращает внимание на эту тему, я обнаружил, что хочу использовать параметр plot = T / F, который работает как вариант легенды в этой ситуации.

...