ggplot2:如何为geom_ribbon()中的不同填充分配不同的alpha值?

问题描述 投票:0回答:1

问题:是否可以为alpha中的不同fill分配不同的geom_ribbon()值?

我具有以下可重现的累积入射函数示例

enter image description here

我有

> table(res$CIF)

CIF0 1; treatment=Control     CIF0 1; treatment=SSA    CIF0 1; treatment=SSTR 
                       35                        61                        25 

我想要res$CIF0 1; treatment=Control完全不透明,即alpha=0,而其余两个组具有alpha=0.2

如何完成?

ggplot(res, aes(time, P)) +
  geom_ribbon(aes(ymin = lower, ymax = upper, fill = CIF), alpha=0.2) +
  geom_line(aes(color = CIF)) +
  scale_x_continuous(breaks = seq(0,100,10)) +
  coord_cartesian(xlim=c(0,100))

数据样本

res <- structure(list(CIF = c("CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", 
"CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", 
"CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", 
"CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", 
"CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", 
"CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", 
"CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", 
"CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", 
"CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSTR", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", "CIF0 1; treatment=SSA", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control", "CIF0 1; treatment=Control", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control", "CIF0 1; treatment=Control", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control", "CIF0 1; treatment=Control", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control", "CIF0 1; treatment=Control", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control", "CIF0 1; treatment=Control", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control", "CIF0 1; treatment=Control", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control", "CIF0 1; treatment=Control", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control", "CIF0 1; treatment=Control", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control", "CIF0 1; treatment=Control", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control", "CIF0 1; treatment=Control", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control", "CIF0 1; treatment=Control", 
"CIF0 1; treatment=Control", "CIF0 1; treatment=Control"), P = c(0.0116279069767442, 
0.0348837209302326, 0.0813953488372093, 0.209302325581395, 0.267441860465116, 
0.27906976744186, 0.351162790697674, 0.351162790697674, 0.363405002193945, 
0.363405002193945, 0.363405002193945, 0.425891290039491, 0.438998169929045, 
0.452105049818598, 0.452105049818598, 0.452105049818598, 0.452105049818598, 
0.467711841066396, 0.467711841066396, 0.483896661619669, 0.501488857873226, 
0.501488857873226, 0.501488857873226, 0.501488857873226, 0.533914431204164, 
0.008, 0.032, 0.0402735042735043, 0.0485470085470086, 0.0568205128205128, 
0.0650940170940171, 0.131282051282051, 0.139555555555556, 0.139555555555556, 
0.156102564102564, 0.164376068376068, 0.172649572649573, 0.214017094017094, 
0.222290598290598, 0.238837606837607, 0.255384615384615, 0.26365811965812, 
0.280205128205128, 0.288577126577126, 0.296949124949125, 0.305321123321123, 
0.313905071018995, 0.322489018716867, 0.331072966414738, 0.33965691411261, 
0.356824809508354, 0.365527978702029, 0.365527978702029, 0.374231147895705, 
0.383194113184714, 0.392157078473723, 0.401120043762732, 0.410225278342043, 
0.419330512921354, 0.428744399520302, 0.438158286119251, 0.438158286119251, 
0.447572172718199, 0.466399945916096, 0.475813832515045, 0.485412305125737, 
0.504609250347123, 0.514625047853932, 0.554688237881171, 0.564704035387981, 
0.574976648215478, 0.585249261042975, 0.595807224226791, 0.606365187410608, 
0.619660400308747, 0.632955613206886, 0.646804793309115, 0.66356959027497, 
0.66356959027497, 0.681320551768229, 0.71935832639664, 0.742180991173687, 
0.742180991173687, 0.771524417315605, 0.800867843457522, 0.800867843457522, 
0.025, 0.025, 0.025, 0.025, 0.025, 0.05, 0.075, 0.1, 0.125, 0.15, 
0.15, 0.175, 0.2, 0.225, 0.25, 0.275, 0.3, 0.325, 0.35, 0.375, 
0.4, 0.425, 0.45, 0.478333333333333, 0.506666666666667, 0.535, 
0.565909090909091, 0.596818181818182, 0.631590909090909, 0.666363636363636, 
0.701136363636364, 0.735909090909091, 0.770681818181818, 0.805454545454545, 
0.840227272727273), time = c(0.1, 1, 2, 3, 4, 5, 6, 7.7, 8, 8.9, 
9.7, 12, 13, 13.8, 15.6, 16, 18, 21, 21.8, 22, 26.2, 32, 47.2, 
57, 75.9, 0.72, 1, 1.02, 1.08, 1.48, 1.87, 2, 2.43, 2.66, 2.76, 
2.82, 2.83, 3, 3.06, 3.08, 3.57, 3.88, 4, 4.11, 4.23, 4.4, 5.06, 
5.07, 5.29, 5.49, 6, 6.37, 6.41, 6.9, 7.48, 7.79, 8, 8.03, 9, 
9.13, 9.2, 9.25, 10, 10.8, 11, 11.04, 12, 13, 13.47, 14.2, 15.05, 
16.1, 18, 19, 21.1, 21.42, 23.1, 26.91, 29.84, 30.85, 36, 37, 
50.4, 55, 60, 227.26, 0.23, 0.26, 0.49, 0.53, 0.69, 3.15, 3.25, 
4.5, 5.12, 5.78, 6.67, 7.65, 7.79, 7.85, 9, 9.99, 11.37, 12.68, 
13.11, 15.05, 15.83, 16.89, 18.17, 22.7, 23.59, 29.6, 32.65, 
35.81, 43, 43.79, 45.37, 46.45, 46.65, 69.02, 105.16), lower = c(0.00164617019552282, 
0.0113856737746599, 0.0396576469212214, 0.137397969022517, 0.186547499227902, 
0.196621316727872, 0.260256711254436, 0.260256711254436, 0.271275320611526, 
0.271275320611526, 0.271275320611526, 0.328365028488864, 0.340443606650536, 
0.35260199321003, 0.35260199321003, 0.35260199321003, 0.35260199321003, 
0.366602928781548, 0.366602928781548, 0.381138644331497, 0.396763300880135, 
0.396763300880135, 0.396763300880135, 0.396763300880135, 0.419758773874353, 
0.00113079397933524, 0.0121318162766967, 0.0169602104591103, 
0.0221020257192824, 0.0274924721924664, 0.0330871802437624, 0.0825552954975503, 
0.0891475380978586, 0.0891475380978586, 0.10252950910509, 0.109310958190052, 
0.116148022092879, 0.151072486742553, 0.158189875311549, 0.17254320156191, 
0.187045456692541, 0.194349432892335, 0.209057919001854, 0.216533612164684, 
0.224041664416515, 0.231581290225624, 0.239310242224555, 0.247071853759351, 
0.254865425506176, 0.262690312701882, 0.278431702879287, 0.286438278832329, 
0.286438278832329, 0.294475403714247, 0.302741263754617, 0.311039845699379, 
0.319370690508033, 0.327842676656013, 0.336347856846665, 0.345122677072548, 
0.353933917141138, 0.353933917141138, 0.362781191618168, 0.380582536935198, 
0.389536065805856, 0.398668454798478, 0.417044839259437, 0.426613603797864, 
0.465317914150164, 0.475101203906211, 0.485129775477843, 0.495205813090998, 
0.505553356441026, 0.515954049816092, 0.528422874133768, 0.541020866739871, 
0.55413162171834, 0.569264211367809, 0.569264211367809, 0.585292041073961, 
0.62005426996364, 0.640223402829866, 0.640223402829866, 0.664192334088305, 
0.690689472196916, 0.690689472196916, 0.00355981698627006, 0.00355981698627006, 
0.00355981698627006, 0.00355981698627006, 0.00355981698627006, 
0.0127444761396915, 0.0248237564000704, 0.0387548083597935, 0.0540289278928447, 
0.0703518337133965, 0.0703518337133965, 0.0875349177801499, 0.105448804967606, 
0.124000413393049, 0.143120415258911, 0.162755851975246, 0.182865529959695, 
0.20341701986178, 0.22438463188234, 0.245748013164318, 0.267491158005832, 
0.289601702577961, 0.312070423267255, 0.337084153386502, 0.362632734261147, 
0.388713550110491, 0.417009262625303, 0.446060748331539, 0.478344299849033, 
0.511927776545623, 0.546903575783177, 0.583428286459313, 0.621755981338108, 
0.662308487815083, 0.705837515898454), upper = c(0.0796782564120139, 
0.104253197032666, 0.163162373925593, 0.311425838586527, 0.374432690497204, 
0.386794184236729, 0.462447106364137, 0.462447106364137, 0.475081826536456, 
0.475081826536456, 0.475081826536456, 0.538686209970986, 0.551932133039142, 
0.565082314302923, 0.565082314302923, 0.565082314302923, 0.565082314302923, 
0.581347998648697, 0.581347998648697, 0.598170095838594, 0.616628247575946, 
0.616628247575946, 0.616628247575946, 0.616628247575946, 0.657208880749188, 
0.0554260131286375, 0.0830100840055478, 0.0940622896679119, 0.104889543467743, 
0.11551958346489, 0.125977767822471, 0.205368253636832, 0.214904894996087, 
0.214904894996087, 0.233786022502375, 0.243138115767547, 0.252435578600051, 
0.298192496252241, 0.307212268593429, 0.325133443864845, 0.342905511254632, 
0.351738496831459, 0.369303313967178, 0.378164327666312, 0.386991801367172, 
0.395786559611945, 0.404820623678952, 0.413819170217332, 0.42278305874121, 
0.431713076032818, 0.449474317611162, 0.458455487152875, 0.458455487152875, 
0.46740312211146, 0.476640870738304, 0.485841275433182, 0.495005029768766, 
0.504308235077278, 0.513573240643691, 0.523180531581042, 0.53274457591725, 
0.53274457591725, 0.542266095852977, 0.561184062577411, 0.570581579727844, 
0.580160726343911, 0.599188192855639, 0.609136587487604, 0.648416591951278, 
0.658109871602298, 0.668053287834676, 0.677940349143368, 0.688104008650237, 
0.698204032116519, 0.711544781479331, 0.724715772241933, 0.738403133769579, 
0.755603437116425, 0.755603437116425, 0.773673335614864, 0.811463880912856, 
0.834261316418402, 0.834261316418402, 0.864305176695189, 0.891329588053304, 
0.891329588053304, 0.164514540888494, 0.164514540888494, 0.164514540888494, 
0.164514540888494, 0.164514540888494, 0.185453879855473, 0.214782436042548, 
0.244858945502003, 0.274592902916402, 0.303763783420835, 0.303763783420835, 
0.332343773644891, 0.360355238540763, 0.387832132523894, 0.414808316400823, 
0.441314057995926, 0.467375240079267, 0.493013472868414, 0.518246474164134, 
0.543088485840094, 0.56755064509021, 0.591641285440807, 0.615366163389952, 
0.642996938577391, 0.669919078034907, 0.696160621236471, 0.724897048548371, 
0.752630120302531, 0.78395657751485, 0.813600779732339, 0.841596636148257, 
0.867931528334935, 0.892542509012415, 0.91530398695896, 0.935999137248638
)), row.names = c(NA, -121L), class = c("data.table", "data.frame"
))
r ggplot2 plot alpha
1个回答
0
投票

完全不透明似乎使用alpha = 1,而不是0。仅对您的代码进行的修改是(1)添加alpha=CIF作为对geom_ribbon()的映射,以及(2)添加scale_alpha_manual行。最佳实践也可能是将breaks=参数添加到scale_alpha_manual以显式指定级别和值之间的对应关系,而不是依赖于顺序...

ggplot(res, aes(time, P)) +
  geom_ribbon(aes(ymin = lower, ymax = upper, fill = CIF, alpha=CIF))+
  geom_line(aes(color = CIF)) +
    scale_x_continuous(breaks = seq(0,100,10)) +
    scale_alpha_manual(values=c(1,0.2,0.2)) +
  coord_cartesian(xlim=c(0,100))
© www.soinside.com 2019 - 2024. All rights reserved.