2014-06-18 5 views
0

하나의 변수가 두 번째 변수의 비율 인 누적 막대 그래프를 만들려고합니다. 데이터 ors2위한비례 누적 barplot

snps2  ors2  orm2 
1 ABCA7  0.00000000 0.4140283 
2 B1NI  0.00000000 0.3140075 
3 CD2AP  0.00000000 0.2087200 
4 CD33  0.22665737 0.2266574 
5 CLU  0.12221763 0.2444353 
6 CR1  0.00000000 0.3140075 
7 EPAH1  0.22665737 0.2266574 
8 MS4A4A 0.24443527 0.2444353 
9 MS4A4E 0.07696104 0.1539221 
10 MSA6A  0.20872003 0.2087200 
11 PICALM 0.12221763 0.2444353 
12 APOE_e2 0.00000000 -1.3862944 
13 APOE_e4 0.00000000 2.6752584 

값은 항상 0 %, 50 % 또는 orm2 값의 100 %가 될 것이다.
ggplot2에서 사용하기 위해 이것을 긴 형식으로 재구성했습니다. 나는 그들이 서로에 추가 된, 원하는 어떤

enter image description here

그러나, 적색 값보다는 녹색 값의 비율이었다 :

dat_m <- melt(mydata) 
ggplot(dat_m, aes(snps2, value, fill = variable)) + geom_bar(stat = "identity") 

이 나에게 다음과 같은 그래프를 제공합니다 .

그래프에서 ors2가 orsm2의 비율이되도록 어떻게 가져올 수 있습니까? 대신 스택 하나의 회피 barplot을 할 수 있습니다

감사

답변

1

dat$orm2 <- dat$orm2 - dat$ors2 

처럼 변수를 변경, 당신은 단지하려하기 전에 빼줄 있습니다 orm2 = orm2 - ors2

enter image description here

require(reshape2) 
require(ggplot2) 


mydata$orm2_adj=mydata$orm2-mydata$ors2 
summary(mydata) 
dat_m <- melt(mydata[,-3]) 

ggplot(dat_m, aes(snps2, value, fill = variable,color=variable)) + 
    geom_bar(stat = "identity")+ 
    scale_color_manual(values=c("red","transparent")) 
+0

감사합니다. 이것은 내가 보여주고 자했던 것에 완벽하게 작동합니다. – Andrews

1

: 누적 barplot에서

ggplot(dat_m, aes(snps2, value, fill = variable)) + 
    geom_bar(stat = "identity", position='dodge') 

enter image description here

이 값은 항상 요약된다.

0

그렇지 않으면 스택 barplot에, 값은 항상 요약되어 있기 때문에 다음

dat_m <- melt(mydata) 
ggplot(dat_m, aes(snps2, value, fill = variable)) + geom_bar(stat = "identity")