2013-01-17 53 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