如何在条形图中绘制表格的摘要

时间:2013-06-20 09:16:53

标签: r graph bar-chart

我有一张SNP表和相应基因的信息:基因ID,基因类型和基因名称:

          SNP            Gene ID         Gene type      Gene Name
1    rs10876864 ENSG00000123411.10    protein_coding          IKZF4
2    rs10876864 ENSG00000123411.10    protein_coding          IKZF4
3    rs10876864 ENSG00000123411.10    protein_coding          IKZF4
4    rs10876864 ENSG00000123411.10    protein_coding          IKZF4
5   CNVR2845.57  ENSG00000196126.6    protein_coding       HLA-DRB1
6   CNVR2845.57  ENSG00000196126.6    protein_coding       HLA-DRB1
7   CNVR2845.57  ENSG00000196126.6    protein_coding       HLA-DRB1
8   CNVR2845.57  ENSG00000196126.6    protein_coding       HLA-DRB1
9     rs6030897  ENSG00000201372.1             snRNA             U6
10    rs6030897  ENSG00000201372.1             snRNA             U6
11    rs6030897  ENSG00000201372.1             snRNA             U6

我想绘制SNP总数的条形图,以查看有多少SNP是蛋白质编码或snRNA等。

到目前为止,这是我的代码:

barplot(as.matrix(data1), main="SNP", xlab="Gene type", ylab= "Total SNP",     names.arg=c("protein_coding","snRNA","pseudogene","antisense","lincRNA",""), border="blue", density=c(10, 20, 30, 40, 50))

但是我收到一个错误说:

Error in barplot.default(as.matrix(data1), main = "SNP", xlab = "Gene type",  :      incorrect number of names
In addition: Warning messages:
1: In apply(height, 2L, cumsum) : NAs introduced by coercion
2: In apply(height, 2L, cumsum) : NAs introduced by coercion
3: In apply(height, 2L, cumsum) : NAs introduced by coercion
4: In apply(height, 2L, cumsum) : NAs introduced by coercion

1 个答案:

答案 0 :(得分:0)

  1. 您有四列,并提供 5 names.arg
  2. 密度相同,但仅此一项不会出现错误......
  3. 根据barplot,名为height的{​​{1}}的第一项应为:

    高度
    或者是描述组成图的条的值的向量或矩阵。如果height是一个向量,则该图由一系列矩形条组成,其高度由向量中的值给出。如果height是一个矩阵,旁边是FALSE,那么图的每个条对应一个高度列,,列中的值给出 高度堆积的子条组成了横杆。如果height是一个矩阵,旁边是TRUE, 然后每列中的值并列而不是堆叠。

  4. 你有角色列,你期望什么:-)?在绘制数据之前,你需要做一些摘要统计......比如

    ?barplot

    但我建议看一看其他更好的方法,显然在barplot(table(df$Gene_type, df$SNP))包可以自动完成。