2011-12-14 33 views
8

Tôi đang cố gắng tạo các ô vuông có tô màu trong suốt và chú thích tương ứng. Các âm mưu với các giá trị alpha hoạt động tốt ngoại trừ các phím huyền thoại không có điền trong suốt. Ví dụ sau minh họa sự khó khăn:Tính minh bạch trong các phím chú giải ô chữ bằng cách sử dụng R và ggplot2

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

Có cách nào để làm cho các giá trị điền vào các phím huyền thoại trong suốt quá?

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

Xin cảm ơn trước vì bất kỳ lời khuyên nào về vấn đề này.

Một ví dụ nơi ánh xạ alpha làm việc như sau

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

Plot where alpha mapping works fine

+0

Tôi đã xóa câu trả lời của mình dưới ánh sáng của nhận xét của khoske và ví dụ về số lượt truy cập của bạn. –

+0

@PaulHiemstra - Bạn có thể phục hồi câu trả lời của bạn, vì vậy chúng tôi có thể xem nhận xét của khoske? Ngoài ra, nếu nhận xét cho thấy lý do tại sao điều này ** không thể được thực hiện, bạn có thể kết hợp điều đó ở đầu câu trả lời của bạn, và sau đó nó có thể được bình chọn và hy vọng chấp nhận bởi yellowcap. –

+0

Vui lòng gửi báo cáo lỗi tại https://github.com/hadley/ggplot2/issues – hadley

Trả lời

1

Các giải pháp tôi đã sử dụng trong quá khứ là một trong này ... một hack khổng lồ nhưng công trình.

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) 

Tôi thường sử dụng nó khi tôi tạo cốt truyện geom_text, nhưng muốn chú thích hiển thị dưới dạng điểm hoặc khối. Nhưng nó cũng hoạt động cho trường hợp này.

Trong trường hợp Hadley chú ý đến chủ đề này, tôi thấy mình muốn một tùy chọn lô = T/F hoạt động như tùy chọn chú giải cho tình huống này.

Các vấn đề liên quan