2

視覚化したい配列特徴情報があります。ここにいくつかのおもちゃのデータがあります(データを再生成するための特定のrコードは最後にあります)

          type index variable position
...
14         CDS    14    start 31129
15        exon    15    start 32196
16         CDS    16    start 32196
17  stop_codon    17    start 32247
18        exon     1      end 12166
19         CDS     2      end 12166
...

次のプロットを生成するために使用したコマンドは

qplot(position,type,data=m2data,color=type)+xlim(11950,15000)

私がこれまでに持っているもの

しかし、ペイントで作成した次のように、同じ「インデックス」を共有する「開始」と「終了」の間に線分を追加したいと思います。

私が欲しいもの

Rのggplot2でこれを達成するにはどうすればよいですか?

以下はデータです

m2data<-structure(list(type = structure(c(2L, 1L, 3L, 2L, 1L, 2L, 1L, 
4L, 2L, 2L, 1L, 3L, 2L, 1L, 2L, 1L, 4L, 2L, 1L, 3L, 2L, 1L, 2L, 
1L, 4L, 2L, 2L, 1L, 3L, 2L, 1L, 2L, 1L, 4L), class = "factor", .Label = c("CDS", 
"exon", "start_codon", "stop_codon")), index = c("1", "2", "3", 
"4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", 
"16", "17", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", 
"11", "12", "13", "14", "15", "16", "17"), variable = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L), .Label = c("start", "end"), class = "factor"), position= c(11955L, 
12026L, 12026L, 16677L, 16677L, 17745L, 17745L, 17787L, 18309L, 
28587L, 28658L, 28658L, 31129L, 31129L, 32196L, 32196L, 32247L, 
12166L, 12166L, 12028L, 16841L, 16841L, 17814L, 17786L, 17789L, 
18898L, 28798L, 28798L, 28660L, 31299L, 31299L, 32270L, 32246L, 
32249L)), .Names = c("type", "index", "variable", "position"), row.names = c(NA, 
-34L), class = "data.frame")
4

1 に答える 1

8

これがあなたの問題の解決策です。あなたの質問は以前のものと非常に似ていますが、データセットに固有の回答を提供することは依然として有用だと思います.

library(ggplot2)
library(reshape2)

# Use dcast (in reshape2 package) to create separate columns for start and end.
dat = dcast(m2data, type + index ~ variable, value.var="position")

plot_1 = ggplot(dat, aes(x=start, xend=end, y=type, yend=type, colour=type)) +
         geom_segment(size=3) +
         geom_point(size=3) +
         geom_point(aes(x=end), size=3)

ggsave(filename="plot_1.png", plot_1, width=10, height=2.5)

ここに画像の説明を入力

于 2012-07-19T00:22:39.323 に答える