旋转ggplot2双面条形图

时间:2016-06-10 16:53:42

标签: r ggplot2 bar-chart

我正在尝试制作一个水平的双面条形图。到目前为止,我得到的最接近的是每Two sided bar plot ordered by date个ggplot2。我如何旋转它以使基因名称在共享的y轴上,右边的A和左边的B。

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 个答案:

答案 0 :(得分:3)

如果我理解你就可以做到这一点

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