如何在R中的X轴上绘制多个列?

时间:2015-11-24 14:12:03

标签: r multiple-columns

我从一组100个基因开始,这些基因最常见于某种生物物质中,这个名单叫做#top; top100"。使用MERGE我设法从每个样本的数据集中获取这100个蛋白质中的每一个的计数。我想绘制每个样品中每种蛋白质的计数。

所以基本上我想要一个图表,例如:蛋白质:PKM和每个样本的图(在这种情况下N = 2)计数,而不是我想在单个图中对所有100个蛋白重复这个过程

            row.names   Gene.Symbol     Normalised.count.(B)        Normalised.count.(A)
    1           1           A2M             46.073855                   280.736354
    2           5           ACTN4           0.000000                    10.436296
    3           8           ALDOA           39.354751                   61.574145
    4           9           ANXA1           1.919744                    1.043630
    5           13          ANXA5           8.638848                    0.000000
    6           17          BSG             5.759232                    1.043630
    7           22          CD81            1.919744                    2.087259
    8           23          CD9             2.879616                    4.174518
    9           25          CFL1            5.759232                    10.436296
    10          26          CLIC1           1.919744                    10.436296

这是总列表的1/10,因此对于每个基因符号,我希望两个noramlised计数值都绘制在哪里

X1 =基因符号y = normalised.count。(A)

X2 =基因符号y = normalised.count。(B)

这是我到目前为止排序到最终列表的内容。

 library("openxlsx") 
 library("dplyr")
 library("ggplot2")
 library('reshape2')
 library('gdata')

 protein_report <- read.xlsx(file.choose(), sheet=1)
 top100 <- read.xlsx(file.choose(), sheet=1)

 norm <- matchcols(protein_report,with = "Norm")
 top <- na.omit(merge(top100, protein_report[c("Gene.names",norm)], by.x="Gene.Symbol",by.y="Gene.names", all.x = T, all.y = F))     

如何绘制这些值?

1 个答案:

答案 0 :(得分:1)

您可以使用tidyr和收集功能首先将数据重新整形为长格式,然后使用ggplot绘制

library(tidyr)
library(ggplot2)

plotData <- protein_report %>% gather(type,Normalised.count,
                                      Normalised.count.A,Normalised.count.B)

ggplot(plotData,aes(x=Gene.Symbol,y=Normalised.count,color=type) + 
       geom_line()    ## For a line plot