我在R中有一个数据帧。在每个数据帧中有8个变量。
我想制作一个条形图,我想根据一个特定变量中的值为条形指定不同的灰度。
这就是我制作一个条形图的方式:
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
在另一个灰色阴影中的所有条形图等等......
有人可以帮我一把吗?
答案 0 :(得分:7)
首先,定义的样本数据框包含cov
和exon
值。
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)])