我想用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)
)
)
如果它有所作为,真实的东西会在另一个变量上添加一个facet wrap。
答案 0 :(得分:2)
答案 1 :(得分:2)
切换到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
)
我不知道I
中I(ifelse(...
正在做什么,但它似乎阻止了额外的东西出现在传奇中。
答案 2 :(得分:1)
另一个与geom_density
一起使用的选项是直接在scales_color_manual
中指定带有alpha参数的颜色,但在这种情况下,需要更多工作来“缩放”您的绘图以获得更多颜色
cols <- scales::hue_pal()(6)
cols.alpha <- c(cols[1:5], grDevices::adjustcolor(cols[6], alpha.f = 0.3))
ggplot(data) +
geom_density(
aes(
colour = factor(generation),
x = samples,
), size = 1.5
) +
scale_colour_manual(values = cols.alpha)