geom_density 与 alpha 向量

Pen*_*gin 1 r ggplot2

我想用 绘制几个分布geom_density,并且除了其中之一之外的所有分布都淡出。我该怎么做,因为以下内容不会alpha按预期改变。

require("ggplot2")

data = rbind(
  data.frame(generation=1, samples=rnorm(90)),
  data.frame(generation=2, samples=rnorm(100)),
  data.frame(generation=3, samples=rnorm(110)),
  data.frame(generation=4, samples=rnorm(120)),
  data.frame(generation=5, samples=rnorm(130)),
  data.frame(generation=6, samples=rnorm(140))
)

maxGen = max(data$generation)

ggplot(data) + 
  geom_density(
    aes(
      colour= factor(generation), 
      x=samples,
      alpha=ifelse(data$generation == maxGen, 0.3, 1.0)
    )
  )
Run Code Online (Sandbox Code Playgroud)

如果它有所作为,真实的东西会在另一个变量上添加一个方面包装。

Pen*_*gin 5

切换到geom_line它似乎工作:

require("ggplot2")

data = rbind(
  data.frame(generation=1, samples=rnorm(100)),
  data.frame(generation=2, samples=rnorm(100)),
  data.frame(generation=3, samples=rnorm(100)),
  data.frame(generation=4, samples=rnorm(100)),
  data.frame(generation=5, samples=rnorm(100)),
  data.frame(generation=6, samples=rnorm(100))
)

maxGen = max(data$generation)

ggplot(data) + 
  geom_line(
    aes(
      colour= factor(generation), 
      x=samples,
      alpha=I(ifelse(data$generation == maxGen, 1, 0.3))
    ),
    stat="density",
    size=1.5
  )
Run Code Online (Sandbox Code Playgroud)

我不知道IinI(ifelse(...正在做什么,但它似乎阻止了额外的东西出现在图例中。

在此处输入图片说明