2016-07-04 87 views
1

我想绘制geom_density的几个发行版,并且除了其中一个以外,其他都没有了。我该如何做到这一点,因为以下内容不会按预期更改alpha带有alpha矢量的geom_density

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) 
    ) 
) 

万一它有所不同,真实情况会在另一个变量上添加方面换行。

回答

1

另外一个选择是直接在scales_color_manual但在这种情况下,阿尔法参数中指定的颜色,它会采取一些更多的工作,以“规模化”的情节为更多的颜色。

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) 
2

如果你想在透明度参数取的效果,你需要指定fill参数,而不是颜色,这不仅影响了情节线:切换到geom_line

ggplot(data) + geom_density(aes(fill= factor(generation), x=samples, alpha=generation == maxGen)) + 
    scale_alpha_manual(labels = c("TRUE" = "Max", "FALSE" = "NoMax"), values = c(0.1, 0.8)) + 
    theme(legend.title = element_blank()) 

enter image description here

+2

我其实想改变一行alpha,但是这让我走上了正轨。切换到使用geom_line与stat =“密度”,它的工作。 – Pengin

2

它似乎工作:

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 
) 

我不知道什么II(ifelse(...正在做,但它似乎阻止额外的东西出现在传说中。与geom_density工作

enter image description here