2011-12-14 18 views
8

Şeffaf doldurma ve karşılık gelen bir lejantla kutu çizimleri yapmaya çalışıyorum. Alfa değerleri ile çizim yapmak, efsane tuşlarının saydam dolgular içermemesi dışında iyi çalışır.R ve ggplot2 kullanılarak kutucuk legend anahtarlarında saydamlık

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

çok şeffaf efsane anahtarlarında dolgu değerlerini yapmak için bir yolu var mı: Aşağıdaki örnek zorluk göstermektedir?

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

Bu konuyla ilgili ipuçları için şimdiden teşekkür ederiz.

alfa haritalama işleri bir örnek ... onun büyük bir hack bu bir ben geçmişte kullandığınız aşağıdaki

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

Plot where alpha mapping works fine

+0

Cevabımı, khoske'nin yorumları ve karşı örneğiniz ışığında sildim. –

+0

@PaulHiemstra - Cevabınızı geri alabilir misiniz, khoske'nin yorumlarını görebilir miyiz? Ayrıca, yorumlar bu ** nedeninin ** neden yapılamayacağını gösteriyorsa, bunu cevabınızın üstüne ekleyebilir ve o zaman oylama yapılabilir ve ümitle yellowcap tarafından kabul edilebilir. –

+0

Lütfen https://github.com/hadley/ggplot2/issues adresinden bir hata raporu gönderin. – hadley

cevap

1

çözümdür ama çalışır.

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) 

Ben genellikle bir geom_text arsa yapıyorum zaman kullanabilirsiniz, ancak efsane noktaları veya bloklar olarak göstermek istiyorum. Ama bu örnek için de çalışıyor.

Hadley bu konuya dikkat ediyorsa, kendimi bu durum için gösterge seçeneği gibi çalışan bir çizim = T/F seçeneği istediğimi buldum.