2013-01-17 32 views
3

我在R中有一个数据框。在每个数据框中有8个变量。barplot()基于列中类别数的不同颜色的灰色条纹

我想创建一个barplot,我想根据一个特定变量中的值为条分配不同的灰度阴影。

这是我做了一个barplot:

barplot(x$cov, names.arg = x$exon, 
    xlab = x$gene[1], 
    ylab = "read depth" , 
    border = gray.colors(???)) 

可变外显子组成的整数。例如:

0 0 0 0 1 1 1 2 2 3 3 3 3 4 4 4 

所以我希望所有的栏,其中$exon = 0是在灰色 所有栏,其中$exon = 1在灰色的另一种颜色一个影等...

能有人给我是一只手?

回答

7

首先,定义的采样数据帧包含covexon值。

x<-data.frame(cov=sample(1:20,20),exon=rep(0:4,each=4)) 

二手说法col=,而不是border=,因为它是实例更好地可见。

灰色的矢量作为exon的唯一值的长度。然后[]用于根据exon的值为每个栏选择颜色。

barplot(x$cov, names.arg = x$exon, 
     ylab = "read depth" , 
     col = gray.colors(length(unique(x$exon)))[as.factor(x$exon)]) 

enter image description here