我想用 绘制几个分布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)
如果它有所作为,真实的东西会在另一个变量上添加一个方面包装。
切换到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(...正在做什么,但它似乎阻止了额外的东西出现在图例中。