ggplot alpha = 0 不起作用

Luc*_*caS 6 r ggplot2

我试图通过调整 alpha 值来复制一些纵向数据的轨迹图,并突出显示随机主题轨迹。我已经完成了 95% 的工作,除了当 alpha = 0 时我似乎无法获得线图的完全透明度(它仍然显示为灰色)。有任何想法吗?- 数据在这里:

https://d.pr/f/iIoE8q+

谢谢你。

# Assign random alpha (0 [90%] or 1 [10%]) values
macs <-  ddply(macs, .(id), function(x){
  x$alpha = ifelse(runif(n = 1) > 0.9, 1, 0)
  x
})

# Loess fit
fit <- loess(CD4 ~ time, data=macs, span = 0.5)

# Plot
ggplot(data = macs, aes(x = fitted(fit), y = resid(fit))) +
  geom_point(aes(alpha=1), size = 0.5) +  
  geom_line(aes(alpha=alpha, group=id)) + 
  guides(alpha=FALSE)
Run Code Online (Sandbox Code Playgroud)

要复制的图

我的尝试

onl*_*tom 3

color问题与中的行为有关ggplot。一个简单的修复方法是显式指定其颜色为0NA时的颜色alpha。以下是我在调用之前添加的代码ggplot

color_rule <- ifelse(macs$alpha == 0, NA, "black")

并稍作修改ggplot

ggplot(data = macs, aes(x = fitted(fit), y = resid(fit))) +
  geom_point(aes(alpha=1), size = 0.5) +  
  geom_line(aes(alpha=alpha, group=id), color=color_rule) + 
  guides(alpha=FALSE)
Run Code Online (Sandbox Code Playgroud)

这将为您提供以下情节: 在此输入图像描述

干净、完全geom_line透明color=NA。只是为了比较,如果您color=NA从 中删除参数geom_line,即使alpha=0您将得到该行的有效“默认颜色”: 在此输入图像描述

  • 只是在“ggplot 3.3.2”中与此作斗争,甚至上面的解决方案也没有使我的线条完全消失......仍然有一些幻影线。我没有意识到有一个默认的 alpha 比例函数有意从 0.1 而不是零开始。解决方案(我可能稍后发布)是使用 `scale_alpha_*` 系列函数(特别是 `scale_alpha_identity`)。 (2认同)