我试图通过调整 alpha 值来复制一些纵向数据的轨迹图,并突出显示随机主题轨迹。我已经完成了 95% 的工作,除了当 alpha = 0 时我似乎无法获得线图的完全透明度(它仍然显示为灰色)。有任何想法吗?- 数据在这里:
谢谢你。
# 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)
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您将得到该行的有效“默认颜色”:
