2016-05-13 21 views
0

私は次のようになります2228年2によってdata.frameあります長さの異なる複数のラインをプロットするggplot2を使用し

diffSums$Libraryあたりのエントリ数が変わり
> head(diffSums, 10) 
           nTranscripts  Library 
D6_NoSort_2250b_ATTATACGCCCC   63963 NoSort_2250b 
D6_EcadSort_6000b_CCACACCCAGCC  193050 EcadSort_6000b 
D6_EcadSort_2250b_CCGATGATTAGC  77631 EcadSort_2250b 
D6_EcadSort_2250b_TGTCTGCTTTAG  106599 EcadSort_2250b 
D6_EcadSort_2250b_TTCACAAGTTTC  88775 EcadSort_2250b 
D6_EcadSort_6000b_CCATATCCAGCT  97861 EcadSort_6000b 
D6_EcadSort_6000b_CAACGACTTAGG  91813 EcadSort_6000b 
D6_EcadSort_2250b_AGTGAACAGGCG  80503 NoSort_2250b 
D6_EcadSort_2250b_AAGCGGCTGCGC  93326 EcadSort_2250b 
D6_EcadSort_2250b_CGTTTCACTTCG  72013 NoSort_2250b 

> table(diffSums$Library) 

    EcadSort_2250b EcadSort_2250x8b EcadSort_6000b EcadSort_6000x3b  NoSort_2250b NoSort_2250x23b NoSort_2250x8b  NoSort_6000b NoSort_6000x3b 
      136    321    131    422    269    72    452    192    233 

を私はggplot2を使って同じプロット上の各ライブラリの行をプロットしたいと思います。私は、各ライブラリをgrep'nとプロット手動でこれを達成することができる午前:

ggplot() + 
    geom_line(data=diffSums[grep("EcadSort_6000x3b", rownames(diffSums)),], aes(x=seq(as.vector(table(diffSums$Library))[4]), y=sort(nTranscripts, decreasing=TRUE)), color='green') + 
    geom_line(data=diffSums[grep("NoSort_2250b", rownames(diffSums)),], aes(x=seq(as.vector(table(diffSums$Library))[5]), y=sort(nTranscripts, decreasing=TRUE)), color='blue') 

...しかし、私はもっと簡単な方法がなければならない知っています!どんな助けでも大歓迎です。

+0

の構造は何プロットしたいデータ?上記に含まれているサンプルデータには、diffSumsの 'lib'カラムがありません。また、colSums.diffとは何ですか?この場合?サンプルデータと、プロットしたいことの明確な説明を含めると、助けが簡単になります。 – shreyasgm

+0

@shreyasgm申し訳ありません! 'lib' =='ライブラリ '。コードが更新されます。 – user2117258

答えて

1

それはあなたが提供されたデータとコードを使用して生成されたグラフを再現することは可能ではないのですが、私は、これはあなたが探しているものだと思う:

library(dplyr) 

diffSums <- diffSums %>% 
    group_by(Library) %>% 
    arrange(-nTranscripts) %>% 
    mutate(numLib = seq_len(n())) 

ggplot(diffSums, aes(numLib,nTranscripts,colour = Library)) + geom_line() 

enter image description here

関連する問題