根据变量更改alpha级别

时间:2018-03-19 12:55:37

标签: r ggplot2

我有一个这样的数据框:

dftt <- data.frame(values = runif(11*4,0,1),
                   col = factor(c(rep(2,4),
                           rep(1,4),
                           rep(5,9*4))),
                   x= rep(1:4, 11*4),
                   group=rep(factor(1:11), each=4)
)

我像这样绘制

library(ggplot2)
ggplot(dftt, aes(x=x, y=values, group=group, color=col)) + geom_line() 

enter image description here

这个情节中的蓝线只是&#34;背景&#34;并没有红色和绿色那么重要,所以我想降低蓝线的alpha级别。

我尝试了这个新数据框:

dftt <- data.frame(values = runif(11*4,0,1),
                   col = factor(c(rep(2,4),
                           rep(1,4),
                           rep(5,9*4))),
                   x= rep(1:4, 11*4),
                   group=rep(factor(1:11), each=4),
                   lincol = factor(c(rep(1,9*4), rep(2,2*4)))
)

此数据框有一个新变量lincol,我试图将其绘制成如下:

ggplot(dftt, aes(x=x, y=values, group=group, color=col)) + 
   geom_line(aes(alpha=lincol)) 

但是这个新情节看起来像这样:

enter image description here

阿尔法是正确的,但我失去了红色和绿色。传说也很奇怪。

我还想将alpha级别专门设置为0.5。

1 个答案:

答案 0 :(得分:2)

无需修改数据。为TRUEFALSE)添加alpha / alpha = col == 5条件:

library(ggplot2)
ggplot(dftt, aes(x, values, group = group, color = col, alpha = col == 5)) + 
    geom_line() +
    scale_alpha_manual(values = c(1, 0.5), guide = FALSE)

enter image description here

要设置有用的alpha值,请使用scale_alpha_manual并删除alpha使用guide = FALSE的其他图例。

像这样你:

  • 不必修改您的数据
  • 保持相同颜色
  • 设置想要的alpha值
  • 删除不需要的图例