2016-07-04 86 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