2016-06-10 70 views
0

我正在嘗試製作一個水平雙面barplot。到目前爲止,我所得到的最接近的是ggplot2,每Two sided bar plot ordered by date。我將如何旋轉這樣的基因名稱是在共享的y軸上,右邊是A,左邊是B.旋轉ggplot2雙面barplot

enter image description here

數據集:

 gene group percentchanged 
1  FAM149A  A   0.0 
2  SLC35F5  A   0.0 
3  MYST4  A   2.0 
4  USP31  A   0.0 
5  ANTXR1  A   0.0 
6  COPS2  A   0.0 
7  TTC18  A   0.0 
8  DOCK11  A   0.0 
9  ITSN1  A   0.0 
10 DNAJC13  A   0.0 
11  CEP250  A   2.0 
12  DAPK1  A   0.0 
13 CXorf22  A   0.0 
14  APC  A   12.0 
15  ZNF675  A   0.0 
16  PDGFRB  A   0.0 
17  JPH1  A   2.0 
18  CSPP1  A   0.0 
19  PIK3R4  A   0.0 
20  NUP133  A   0.0 
21  DLG1  A   0.0 
22  CLEC1A  A   0.0 
23  NLRP10  A   0.0 
24  XPO6  A   0.0 
25  MANBA  A   0.0 
26  MMRN1  A   2.0 
27  MAP3K2  A   0.0 
28  MAP3K6  A   0.0 
29  TP53  A   29.0 
30  NUMA1  A   2.0 
31  UGGT2  A   0.0 
32  GAD1  A   0.0 
33  INTS3  A   0.0 
34  PTK2  A   0.0 
35  SEC24C  A   0.0 
36  GUCY2F  A   0.0 
37 NFKBIL2  A   2.0 
38 ANKRD12  A   2.0 
39  INADL  A   0.0 
40  ZNF239  A   0.0 
41 CNTNAP5  A   6.0 
42  CEP290  A   2.0 
43  HGFAC  A   0.0 
44  SLC6A2  A   0.0 
45  OAS3  A   0.0 
46  PEX1  A   0.0 
47  KIT  A   0.0 
48  PIK3CA  A   42.0 
49 ProSAPiP1  A   0.0 
50  SYT10  A   0.0 
51  KIF5C  A   0.0 
52  RGMB  A   0.0 
53 PLEKHA7  A   0.0 
54 FAM149A  B   -13.6 
55 SLC35F5  B   -13.6 
56  MYST4  B   -18.2 
57  USP31  B   -13.6 
58  ANTXR1  B   -13.6 
59  COPS2  B   -13.6 
60  TTC18  B   -13.6 
61  DOCK11  B   -13.6 
62  ITSN1  B   -13.6 
63 DNAJC13  B   -13.6 
64  CEP250  B   -18.2 
65  DAPK1  B   -13.6 
66 CXorf22  B   -13.6 
67  APC  B   -36.4 
68  ZNF675  B   -13.6 
69  PDGFRB  B   -18.2 
70  JPH1  B   -18.2 
71  CSPP1  B   -13.6 
72  PIK3R4  B   -13.6 
73  NUP133  B   -13.6 
74  DLG1  B   -13.6 
75  CLEC1A  B   -13.6 
76  NLRP10  B   -13.6 
77  XPO6  B   -13.6 
78  MANBA  B   -13.6 
79  MMRN1  B   -18.2 
80  MAP3K2  B   -13.6 
81  MAP3K6  B   -18.2 
82  TP53  B   -63.6 
83  NUMA1  B   -18.2 
84  UGGT2  B   -13.6 
85  GAD1  B   -13.6 
86  INTS3  B   -13.6 
87  PTK2  B   -13.6 
88  SEC24C  B   -13.6 
89  GUCY2F  B   -13.6 
90 NFKBIL2  B   -18.2 
91 ANKRD12  B   -18.2 
92  INADL  B   -13.6 
93  ZNF239  B   -13.6 
94 CNTNAP5  B   -27.3 
95  CEP290  B   -18.2 
96  HGFAC  B   -13.6 
97  SLC6A2  B   -13.6 
98  OAS3  B   -13.6 
99  PEX1  B   -18.2 
100  KIT  B   -13.6 
101 PIK3CA  B   -9.1 
102 ProSAPiP1  B   -13.6 
103  SYT10  B   -13.6 
104  KIF5C  B   -13.6 
105  RGMB  B   -13.6 
106 PLEKHA7  B   -13.6 

代碼:

allmutlist2<-data.frame("gene"=rep(allmutlist[,1],2),"group"=c(rep("A",nrow(allmutlist)),rep("B",nrow(allmutlist))),percentchanged=c(round(as.numeric(allmutlist[,2])),round(as.numeric(allmutlist[,3]),1)*-1)) 

ggplot(allmutlist2,aes(x=gene,y=percentchanged, fill=group))+geom_bar(stat="identity", position="identity")+ 
        scale_y_continuous(breaks = seq(- max(allmutlist2$percentchanged), max(allmutlist2$percentchanged), 1)) + 
        theme(axis.text.x = element_text(angle = 90, hjust = 1, vjust = 0.5, size = 15)) 
+1

你能編輯你的文章嗎? – MLavoie

+0

[這裏有一個簡單的解決方案](http://stackoverflow.com/questions/14680075/simpler-population-pyramid-in-ggplot2) –

回答

2

如果我理解正確的話,你可以做到這一點

set.seed(43) 
df<-data.frame(Genes=LETTERS,Values=runif(26,-10,10)) 
df$Group<-ifelse(df$Values>0,"A","B") 
ggplot(df,aes(x=Genes,y=Values,fill=Group))+geom_bar(stat="identity")+coord_flip() 

enter image description here