2012-09-11 9 views
0

두 개의 다른 범주로 뉴런의 시퀀스 (A, T, C 및 G의 정렬 된 문자 시퀀스)에 대한 데이터가 풍부합니다. ggplot을 사용하여 시퀀스를 선 그래프로 표시합니다. 합리적으로 멀리 왔고 몇 가지 더 장애물이 있습니다. 샘플 데이터 :축 끊김에 관계없이 ggplot에 격자 선 추가

> dput(so.sample) 
structure(list(`1_mes_wt` = c(0, 0, 4.25897346349789, 10.0666645500859, 
10.0666645500859, 48.3974257215669, 78.2102399660521, 250.698665237717, 
250.698665237717, 268.702507606139, 271.79994285232, 301.225577691032, 
301.225577691032, 301.225577691032, 301.225577691032, 311.292242241118, 
311.292242241118, 311.292242241118, 311.292242241118, 311.292242241118, 
311.292242241118, 311.292242241118, 311.292242241118, 311.292242241118, 
311.292242241118, 311.292242241118, 311.292242241118, 321.746086196977, 
321.746086196977, 321.746086196977, 319.616599465228, 308.969165806483, 
285.931991163017, 204.817905653671, 195.332010212244, 170.165348837029, 
170.165348837029, 170.165348837029, 170.165348837029, 37.3628126570497, 
40.8474273090025, 22.456405534807, 22.456405534807, 17.8102526655366, 
17.8102526655366, 17.8102526655366, 17.8102526655366, 17.8102526655366, 
17.8102526655366, 17.8102526655366, 17.8102526655366, 15.6807659337877, 
15.6807659337877, 15.6807659337877, 15.6807659337877, 15.6807659337877, 
15.6807659337877, 15.6807659337877, 15.6807659337877, 15.6807659337877, 
15.6807659337877, 15.6807659337877, 15.6807659337877, 15.6807659337877, 
15.6807659337877, 15.6807659337877, 5.22692197792922, 5.22692197792922, 
5.22692197792922, 5.22692197792922, 5.22692197792922, 5.22692197792922, 
5.22692197792922, 5.22692197792922, 5.22692197792922, 5.22692197792922, 
5.22692197792922, 1.74230732597641, 1.93589702886268, 1.93589702886268, 
4.25897346349789, 2.71025584040775, 2.71025584040775, 68.5307548217387, 
89.6320324363419, 90.0192118421144, 93.310236791181, 93.1166470882947, 
93.5038264940673, 93.8910058998398, 93.8910058998398, 93.8910058998398, 
93.8910058998398, 93.8910058998398, 93.8910058998398, 93.8910058998398, 
93.8910058998398, 93.8910058998398, 93.8910058998398, 93.8910058998398, 
93.8910058998398, 93.8910058998398, 93.8910058998398, 93.8910058998398, 
93.8910058998398, 93.6974161969535, 93.6974161969535, 93.6974161969535, 
93.6974161969535, 93.6974161969535, 93.6974161969535, 93.6974161969535, 
93.6974161969535, 93.6974161969535, 89.2448530305694, 77.2422914516208, 
1.16153821731761, 0, 0, 0, 0), `2_mes_wt` = c(0, 0, 13.3249362857652, 
41.0267775114349, 41.3774337294814, 100.988990797378, 100.988990797378, 
341.188500159198, 343.643093685523, 359.422623497613, 381.163309016493, 
450.242583971645, 450.242583971645, 450.242583971645, 450.242583971645, 
450.242583971645, 450.242583971645, 450.242583971645, 450.242583971645, 
450.242583971645, 450.242583971645, 450.242583971645, 450.242583971645, 
450.242583971645, 450.242583971645, 450.242583971645, 450.242583971645, 
450.242583971645, 450.242583971645, 450.242583971645, 450.242583971645, 
426.047304926439, 366.085091640496, 308.928128098924, 201.977981594756, 
201.977981594756, 205.133887557174, 205.133887557174, 205.133887557174, 
85.5601172033343, 98.8850534890995, 17.1821546842762, 17.1821546842762, 
17.1821546842762, 17.1821546842762, 17.1821546842762, 17.1821546842762, 
16.8314984662297, 16.8314984662297, 16.8314984662297, 16.8314984662297, 
50.8451516167356, 52.5984327069678, 52.5984327069678, 52.5984327069678, 
52.5984327069678, 52.5984327069678, 52.5984327069678, 52.5984327069678, 
52.5984327069678, 52.5984327069678, 52.5984327069678, 52.5984327069678, 
52.5984327069678, 52.5984327069678, 52.5984327069678, 52.5984327069678, 
52.5984327069678, 52.5984327069678, 52.5984327069678, 52.5984327069678, 
52.5984327069678, 52.5984327069678, 52.5984327069678, 52.5984327069678, 
52.5984327069678, 52.5984327069678, 39.2734964212026, 37.5202153309704, 
42.0787461655743, 54.7023700152465, 54.7023700152465, 54.7023700152465, 
113.261958429004, 114.313927083143, 114.313927083143, 116.067208173376, 
82.0535550228698, 82.0535550228698, 82.0535550228698, 82.0535550228698, 
82.0535550228698, 82.0535550228698, 82.0535550228698, 82.0535550228698, 
82.0535550228698, 82.0535550228698, 82.0535550228698, 82.0535550228698, 
82.0535550228698, 82.0535550228698, 82.0535550228698, 82.0535550228698, 
82.0535550228698, 82.0535550228698, 82.0535550228698, 82.0535550228698, 
82.0535550228698, 82.0535550228698, 82.0535550228698, 82.0535550228698, 
82.0535550228698, 82.0535550228698, 82.0535550228698, 74.3391182258479, 
63.4687754664078, 0, 0, 0, 0, 0), nucl = 47738064:47738184, base = c("T", 
"C", "A", "A", "A", "A", "A", "A", "G", "A", "C", "T", "A", "G", 
"T", "C", "A", "A", "G", "T", "G", "C", "A", "G", "T", "A", "G", 
"T", "G", "A", "G", "A", "A", "G", "G", "G", "G", "G", "G", "A", 
"A", "A", "G", "T", "G", "T", "A", "G", "A", "A", "C", "A", "G", 
"G", "A", "G", "T", "T", "C", "A", "A", "T", "C", "T", "G", "T", 
"A", "A", "C", "T", "G", "A", "C", "T", "G", "T", "G", "A", "A", 
"C", "A", "A", "T", "C", "A", "A", "T", "T", "G", "A", "G", "A", 
"T", "A", "A", "C", "T", "C", "A", "C", "T", "A", "C", "C", "T", 
"T", "C", "G", "G", "A", "C", "C", "A", "G", "C", "C", "A", "A", 
"T", "G", "C")), .Names = c("1_mes_wt", "2_mes_wt", "nucl", "base" 
), row.names = c(NA, -121L), class = "data.frame") 

시퀀스 (염기) 및 서열 위치 (nucl) I 요인으로서 위치를 플롯 한 다음 시퀀스 축을 라벨 텍스트 기하 구조를 사용하여 동시에 표시한다. 그것은 합리적으로 잘 작동합니다

pdf("so_sample.pdf",width=15,height=7) 
ggplot(melt(so.sample,id.vars=c("nucl","base")), aes(factor(nucl), value, group=variable, colour=variable)) + geom_line() + geom_text(y=-5,size=3,aes(label=base)) 
dev.off() 

enter image description here

그러나, 요인 이러한 많은 수의 플롯하는 주요 중복이 발생하고 어쨌든 각 위치의 레이블을 참조 할 필요가 없습니다

. 그래서 나는 휴식의 일부를 제거합니다.

pdf("so_sample2.pdf",width=15,height=7) 
ggplot(melt(so.sample,id.vars=c("nucl","base")), aes(factor(nucl), value, group=variable, colour=variable)) + geom_line() + geom_text(y=-5,size=3,aes(label=base)) + scale_x_discrete(breaks=seq(min(so.sample$nucl),max(so.sample$nucl),10)) 
dev.off() 
내가 거의 다입니다

enter image description here

하지만 휴식을 제거하기에 나는 또한 문자 시퀀스와 함께 특히 유용한 작은 격자 선을 제거했습니다. scale_x_discrete에 지정된 나누기와 관계없이 보조 눈금 선을 추가하는 방법이 있습니까?

한 가지 질문 : 시퀀스 라벨링은 각 그룹의 동일한 위치에 동일한 문자를 플로팅하기 때문에 작동하며 레이블의 최종 색상은 그룹을 그리는 순서에 따라 결정됩니다. 순서를 중립적 인 색으로하는 것이 좋겠지 만 그룹화에 관계없이이 값을 geom_text에 줄 수 있는지 여부는 알 수 없습니다. factor에 호출을 포장하지 않고 그대로 nucl을 떠나

+0

왜 'nucl'을'factor '로 변환합니까? 그대로두고,'minor_breaks'와 함께'scale_x_continuous'를 사용하십시오. –

+0

@mplourde 고마워, 나는 뒤얽힌되고 있었다 : P. 이것을 답변으로 씁니다. – MattLBeck

답변

1

scale_x_discrete 달리 minor_breaks 인수를 가지고 scale_x_continuous을 사용할 수 있습니다.