如何让ggPredict绘图中的数据点更透明?附报错代码求助
解决ggPredict绘图数据点透明度问题
方法1:直接在ggPredict中设置点透明度
ggPredict(来自ggiraphExtra包)支持通过point.params参数传递点的属性,包括透明度alpha,这是最直接的解决方式:
fit4 <- lm(Response~r*delta*sw, data=ChemResearch4) summary(fit4) # 通过point.params设置数据点透明度,add.data需设为TRUE才会显示数据点 b <- ggPredict(fit4, colorn=10, add.data=TRUE, point.params = list(alpha=0.2)) + labs( x = "r", y = "Response", title = "Effect of delta and r on response, by sw values" ) # 直接打印对象即可绘图 print(b)
说明:alpha取值范围为0-1,数值越小点越透明;如果之前代码里设了add.data=FALSE,那原本不会显示数据点,需要改为TRUE才能看到调整后的透明点。
方法2:修改已生成的ggplot对象图层
如果已经生成了ggplot对象b,可以直接遍历图层修改点的透明度:
# 找到所有geom_point图层,设置alpha参数 for(i in seq_along(b$layers)){ if(inherits(b$layers[[i]]$geom, "GeomPoint")){ b$layers[[i]]$aes_params$alpha <- 0.2 } } print(b)
报错原因说明
你之前用geom_point()报错,是因为ggPredict已经自动添加了geom_point图层,重复添加会导致美学映射或数据来源冲突,直接修改已有图层或使用函数自带参数是更稳妥的做法。
内容的提问来源于stack exchange,提问作者Annie Shan
相关产品推荐
相关产品推荐

