Tôi đang vẽ hai băng bán trong suốt với nhau. Sử dụng mã bên dưới, không có phần scale_fill_manual
, tôi nhận được về cơ bản những gì tôi muốn, với truyền thuyết được gọi là "red"
và nhãn blue
và red
. Thêm phần scale_fill_manual
cho phép tôi đặt tên cho chú thích và mục nhập của nó theo ý tôi, nhưng tôi mất tính minh bạch của các hình chữ nhật màu trong chú giải.chú thích ggplot hiển thị độ trong suốt và màu tô đầy
x=1:10
y1=1:10
y2=2:11
y3=10:1
y4=9:0
dt=data.frame(x,y1,y2,y3,y4)
library(ggplot2)
ggplot(dt)+
geom_ribbon(aes(x=x,ymin=y1,ymax=y2,fill='red'),
alpha=0.4,)+
geom_ribbon(aes(x=x,ymin=y3,ymax=y4,fill='blue'),
alpha=0.5)+
scale_fill_manual(name='legendname',
values=c('red','blue'),
labels=c('one','two'))
sản lượng sessionInfo()
R version 2.15.2 (2012-10-26)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] scales_0.2.3 ggplot2_0.9.3 plyr_1.8 reshape2_1.2.2
loaded via a namespace (and not attached):
[1] colorspace_1.2-0 dichromat_1.2-4 digest_0.6.0 grid_2.15.2 gtable_0.1.2 labeling_0.1
[7] MASS_7.3-22 munsell_0.4 proto_0.3-10 RColorBrewer_1.0-5 rstudio_0.97.248 stringr_0.6.2
[13] tools_2.15.2
Có rất nhiều giải pháp cho vấn đề tương tự (Customize legend in ggplot, https://stats.stackexchange.com/questions/5007/how-can-i-change-the-title-of-a-legend-in-ggplot2, vv), nhưng tôi không thể tìm thấy bất cứ điều gì mà các địa chỉ này đặc biệt.
Cảm ơn trước
Giải pháp này làm việc cho tôi, như tôi chỉ yêu cầu 1 mức độ trong suốt [0.4]. Bạn có thể nhận xét về giải pháp sẽ thay đổi như thế nào nếu mỗi dải băng có độ trong suốt độc đáo? – RyanStochastic
@RyanStochastic 'alpha' là một tính thẩm mỹ mà bản thân nó có thể được ánh xạ tới một biến giống như bất kỳ biến số nào khác. Vì vậy, bạn sẽ ánh xạ 'alpha = grp' và có thể thêm thành phần' scale_alpha_manual'. – joran
Cảm ơn tất cả sự giúp đỡ của bạn. – RyanStochastic