R ggplot中的叠加直方图,具有100多种定性颜色

时间:2016-08-01 15:56:57

标签: r ggplot2 fill stackedbarseries

数据框包含许多连续数字列(例如gr)和样本标识符 - wellseq。每个wellseq有许多行数据。在数据框中 - 在10227行中有94个不同级别的wellseq。数据框的标题行为:

 gr wellseq
 1 27.7049       1
 2 31.1149       1
 3 34.5249       1
 4 39.7249       1
 5 44.9249       1
 6 50.1299       1

专栏gr的摘要如下:

summary(GR)
       gr            
 Min.   :-6.94     
 1st Qu.:10.71   
 Median :13.76   
 Mean   :18.99   
 3rd Qu.:20.70   
 Max.   :98.42   
 NA's   :55

适当地创建gr的整个数据的基本直方图。为了进一步分析,需要识别直方图中的每个wellseq贡献。使用的ggplot()脚本是:

p2 <- ggplot() + theme_bw() + 
        geom_histogram(data=GR, na.rm= TRUE, mapping = aes(x=gr, fill=factor(GR$wellseq)), 
           bins = 10) + scale_color_brewer(palette = "Dark2") +
        scale_x_continuous(limits = c(-10, 100)) +
        labs(title=paste("Gamma Ray","Histogram", sep=" ")) +
        theme(legend.position = "none")

Sequential Color in Histogram 结果输出有颜色 - 这是“顺序”而不是“定性”调色板“Dark2”。我尝试使用“如何在R中生成一些最独特的颜色?”中的答案。 @ stackoverflow.com并创建了所需的颜色。

Dcolor = grDevices::colors()[grep('gr(a|e)y', grDevices::colors(), invert = T)]
DcolorR <- sample(Dcolor, 433, replace = F)

使用scale_colour_manual(values = DcolorR)

给出相同的直方图。对..count..使用y,直方图会显示不同wellseq的边界,但不会根据需要填充。

p3 <- ggplot() + theme_bw() +
    geom_histogram(data=GR, na.rm= TRUE, mapping = aes(x=gr, y= ..count.., col = factor(GR$wellseq), bins = 10)) +
    scale_colour_manual(values = DcolorR) +
    scale_x_continuous(limits = c(-10, 100)) +
    labs(title=paste("Gamma Ray"," Frequency Histogram", sep=" ")) +
    theme(legend.position = "none")
fill = 1 # leads to blue colored staked histogram

..count.. creates discrete boundaries in the bars. Fill is single color 我试图得到一个像附加的情节。请指导。提前谢谢。

Desired Output

1 个答案:

答案 0 :(得分:0)

如果您设置aes(x=gr, fill=wellseq),那么您应该得到您正在寻找的内容,这是由他们在wellseq中的成员资格定义的gr子集的分组。

请看这里。分组直方图的R histogram with multiple populations

的简单版本