3

我在 R 中有一个数据框。每个数据框中有 8 个变量。

我想制作一个条形图,在其中我想根据一个特定变量中的值为条形分配不同的灰色阴影。

这就是我制作条形图的方式:

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

变量 exon 由整数组成。例如:

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

所以我希望所有的条都$exon = 0处于一种灰色阴影中 所有的条形都$exon = 1处于另一种灰色阴影中,依此类推......

有人可以帮帮我吗?

4

1 回答 1

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)])

在此处输入图像描述

于 2013-01-17T16:12:30.140 回答