删除白色块空间

时间:2015-07-29 11:06:23

标签: r ggplot2

我正在尝试以rmsf图像位于原理图之上的方式合​​并这两个图。 residue fluctuations of a protein schematics showing the position of binding sites

我使用下面的代码来生成正确的图形,但是我找不到一种方法来删除图底部的大块白色区域(在图形和代码块之间看到的巨大间隙)。 我可以使用gimp或其他软件裁剪它,但我更愿意正确编码。

two images merged together

args <- (commandArgs(T))
library(gdata)
library(ggplot2)
library(plotflow)
library(dplyr)
library(grid)

rmsf.schem <- read.table("./schematics_bindingSites",header=T,sep="",quote="")
rmsf.data <- read.table(paste(args[1]),header=F,sep="",quote="")
names(rmsf.data) <- c("residue","nm")

bb.ggplot <- ggplot(rmsf.data,aes(x=rmsf.data$residue),environment = environment())

gg.rmsf <- bb.ggplot+ geom_line(aes(y=rmsf.data$nm)) + 
          labs(y = "nm", x = NULL, title = NULL) + 
          theme(legend.position="none",plot.margin=unit(c(1,1,0,1), "line"))

binding.sites <- ggplot(rmsf.schem, running=order_by(Domain, ~Start), aes(x = Type, ymin = Start, ymax = Stop, colour = Domain)) +
  scale_color_manual(values=c("white", "red","blue")) +
  geom_linerange(size = 3) + coord_flip() + theme_bw() + 
  labs(y = NULL, x = NULL, title = NULL) + theme(axis.line = element_blank(), 
  panel.grid.major = element_blank(),  
  panel.grid.minor = element_blank(), panel.border = element_blank(),   
  panel.background =  element_blank(), plot.background= element_blank(), axis.ticks = element_blank(),    
  legend.position ="none", axis.text = element_blank(), plot.margin=unit(c(-15,1,0,1), "line"))

gA <- ggplotGrob(gg.rmsf)
gB <- ggplotGrob(binding.sites)
maxWidth = grid::unit.pmax(gA$widths[2:5], gB$widths[2:5])
gA$widths[2:5] <- as.list(maxWidth)
gB$widths[2:5] <- as.list(maxWidth)
hello <- grid.arrange(gA, gB, ncol=1)

ggsave("ciao.png",hello, height=7,width=11,dpi=300)

我在stackoverflow上发现了几个类似的问题,但没有一个能够解决这个问题。 问题出在binding.sites对象中;作为单个值,我无法对ylim采取行动以减小面积,因此我使背景透明并使用负边距plot.margin=unit(c(-15,1,0,1)使示意图接近上图。我尝试进一步更改plot.margins并在height内更改widthggsave,但白色区域始终存在。

用于生成此图的文件是: schematics_bindingSites

Domain Type Start Stop
chain bindingSite 0 505 
g6p bindingSite 198 206 
coEnz bindingSite 38 44

rmsf文件

   27   0.5757
   28   0.4123
   29   0.2642
   30   0.1848
   31   0.1562
   32   0.1362
   33   0.1258
   34   0.1193
   35   0.1183
   36   0.1207
   37   0.1250
   38   0.1374
   39   0.1459
   40   0.1684
   41   0.1621
   42   0.1766
   43   0.1480
   44   0.1266
   45   0.1566
   46   0.1578
   47   0.1288
   48   0.1132
   49   0.1263
   50   0.1295
   51   0.1112
   52   0.1131
   53   0.1295
   54   0.1240
   55   0.1163
   56   0.1348
   57   0.1487
   58   0.1457
   59   0.1452
   60   0.1245
   61   0.1255
   62   0.1469
   63   0.1644
   64   0.1543
   65   0.1435
   66   0.1426
   67   0.1404
   68   0.1432
   69   0.1483
   70   0.1501
   71   0.1634
   72   0.1825
   73   0.1998
   74   0.2202
   75   0.2133
   76   0.2144
   77   0.2081
   78   0.2197
   79   0.2117
   80   0.1904
   81   0.1967
   82   0.2127
   83   0.2034
   84   0.1857
   85   0.2006
   86   0.2105
   87   0.1816
   88   0.1752
   89   0.1978
   90   0.2062
   91   0.2303
   92   0.2545
   93   0.2425
   94   0.2201
   95   0.2312
   96   0.2364
   97   0.2040
   98   0.1935
   99   0.2060
  100   0.2004
  101   0.1793
  102   0.1858
  103   0.1979
  104   0.1786
  105   0.1702
  106   0.1705
  107   0.1761
  108   0.1775
  109   0.1852
  110   0.1794
  111   0.1706
  112   0.1533
  113   0.1684
  114   0.1748
  115   0.1800
  116   0.1940
  117   0.1825
  118   0.1684
  119   0.1856
  120   0.1904
  121   0.1696
  122   0.1731
  123   0.1936
  124   0.1854
  125   0.1728
  126   0.1926
  127   0.2041
  128   0.1918
  129   0.1952
  130   0.1895
  131   0.1770
  132   0.1864
  133   0.1757
  134   0.1507
  135   0.1304
  136   0.1157
  137   0.1013
  138   0.1025
  139   0.0989
  140   0.0960
  141   0.1128
  142   0.1341
  143   0.1489
  144   0.1483
  145   0.1469
  146   0.1319
  147   0.1210
  148   0.1220
  149   0.1284
  150   0.1191
  151   0.1115
  152   0.1244
  153   0.1380
  154   0.1296
  155   0.1334
  156   0.1531
  157   0.1614
  158   0.1462
  159   0.1391
  160   0.1416
  161   0.1638
  162   0.1651
  163   0.1475
  164   0.1312
  165   0.1105
  166   0.0945
  167   0.0853
  168   0.0769
  169   0.0751
  170   0.0944
  171   0.1149
  172   0.1292
  173   0.1190
  174   0.1285
  175   0.1306
  176   0.1204
  177   0.1250
  178   0.1235
  179   0.1118
  180   0.1000
  181   0.1070
  182   0.1089
  183   0.1027
  184   0.1040
  185   0.1120
  186   0.1089
  187   0.1063
  188   0.1180
  189   0.1280
  190   0.1170
  191   0.1069
  192   0.1007
  193   0.0930
  194   0.0998
  195   0.0862
  196   0.0697
  197   0.0624
  198   0.0701
  199   0.0761
  200   0.0785
  201   0.0801
  202   0.0826
  203   0.0928
  204   0.0815
  205   0.0734
  206   0.0755
  207   0.0792
  208   0.0737
  209   0.0726
  210   0.0797
  211   0.0818
  212   0.0836
  213   0.0818
  214   0.0787
  215   0.0763
  216   0.0795
  217   0.0801
  218   0.0821
  219   0.0891
  220   0.0955
  221   0.0981
  222   0.1000
  223   0.0972
  224   0.0876
  225   0.0793
  226   0.0782
  227   0.0823
  228   0.0908
  229   0.0811
  230   0.0780
  231   0.0774
  232   0.0720
  233   0.0667
  234   0.0673
  235   0.0735
  236   0.0803
  237   0.0826
  238   0.0892
  239   0.0987
  240   0.1103
  241   0.1179
  242   0.1221
  243   0.1300
  244   0.1600
  245   0.1798
  246   0.1589
  247   0.1363
  248   0.1369
  249   0.1321
  250   0.1231
  251   0.1197
  252   0.1221
  253   0.1094
  254   0.1021
  255   0.0951
  256   0.0894
  257   0.0960
  258   0.1065
  259   0.0998
  260   0.0900
  261   0.0926
  262   0.1163
  263   0.0932
  264   0.0762
  265   0.0746
  266   0.0732
  267   0.0747
  268   0.0731
  269   0.0729
  270   0.0727
  271   0.0726
  272   0.0766
  273   0.0777
  274   0.0874
  275   0.0986
  276   0.1040
  277   0.1359
  278   0.1519
  279   0.2056
  280   0.1788
  281   0.1478
  282   0.1409
  283   0.1236
  284   0.0995
  285   0.0888
  286   0.0974
  287   0.0847
  288   0.0815
  289   0.0865
  290   0.0924
  291   0.0888
  292   0.0864
  293   0.0887
  294   0.0866
  295   0.0870
  296   0.0940
  297   0.0953
  298   0.0965
  299   0.1181
  300   0.1239
  301   0.1187
  302   0.1006
  303   0.0944
  304   0.0952
  305   0.0991
  306   0.1035
  307   0.1097
  308   0.1153
  309   0.1274
  310   0.1422
  311   0.1570
  312   0.1954
  313   0.1978
  314   0.1853
  315   0.1935
  316   0.1917
  317   0.1690
  318   0.1522
  319   0.1554
  320   0.1486
  321   0.1348
  322   0.1272
  323   0.1396
  324   0.1479
  325   0.1499
  326   0.1654
  327   0.1547
  328   0.1452
  329   0.1531
  330   0.1722
  331   0.1581
  332   0.1331
  333   0.1210
  334   0.1120
  335   0.1041
  336   0.0999
  337   0.0956
  338   0.0885
  339   0.0853
  340   0.0809
  341   0.0793
  342   0.0784
  343   0.0821
  344   0.0872
  345   0.0892
  346   0.0881
  347   0.0914
  348   0.0845
  349   0.0802
  350   0.0903
  351   0.0942
  352   0.0809
  353   0.0777
  354   0.0735
  355   0.0751
  356   0.0770
  357   0.0792
  358   0.0825
  359   0.0906
  360   0.0990
  361   0.1063
  362   0.1073
  363   0.1136
  364   0.1094
  365   0.1035
  366   0.0867
  367   0.0730
  368   0.0682
  369   0.0673
  370   0.0670
  371   0.0697
  372   0.0727
  373   0.0772
  374   0.0876
  375   0.1109
  376   0.1202
  377   0.1612
  378   0.1777
  379   0.2111
  380   0.1768
  381   0.1701
  382   0.2152
  383   0.1783
  384   0.1313
  385   0.1055
  386   0.0953
  387   0.0810
  388   0.0734
  389   0.0732
  390   0.0736
  391   0.0732
  392   0.0719
  393   0.0774
  394   0.0795
  395   0.0882
  396   0.1033
  397   0.1215
  398   0.1025
  399   0.0810
  400   0.0788
  401   0.0809
  402   0.0845
  403   0.0815
  404   0.0811
  405   0.0818
  406   0.0830
  407   0.0842
  408   0.0964
  409   0.1156
  410   0.1213
  411   0.1307
  412   0.1222
  413   0.1154
  414   0.1069
  415   0.0926
  416   0.0875
  417   0.0897
  418   0.0833
  419   0.0882
  420   0.0889
  421   0.0861
  422   0.0916
  423   0.0952
  424   0.1088
  425   0.1827
  426   0.1998
  427   0.1620
  428   0.1472
  429   0.2168
  430   0.2671
  431   0.3304
  432   0.2871
  433   0.2700
  434   0.1976
  435   0.1573
  436   0.1736
  437   0.0977
  438   0.0827
  439   0.0736
  440   0.0662
  441   0.0703
  442   0.0767
  443   0.0736
  444   0.0754
  445   0.0888
  446   0.0934
  447   0.0888
  448   0.0820
  449   0.0809
  450   0.0947
  451   0.0980
  452   0.0726
  453   0.0703
  454   0.0735
  455   0.0849
  456   0.0945
  457   0.0880
  458   0.0867
  459   0.0918
  460   0.0829
  461   0.0818
  462   0.0856
  463   0.0856
  464   0.0822
  465   0.0866
  466   0.1037
  467   0.1117
  468   0.1061
  469   0.1064
  470   0.1209
  471   0.1349
  472   0.1383
  473   0.1527
  474   0.1589
  475   0.1506
  476   0.1422
  477   0.1388
  478   0.1338
  479   0.1192
  480   0.1221
  481   0.1228
  482   0.1178
  483   0.1238
  484   0.1236
  485   0.1211
  486   0.1188
  487   0.1139
  488   0.1152
  489   0.1170
  490   0.1243
  491   0.1169
  492   0.1038
  493   0.1049
  494   0.1089
  495   0.0985
  496   0.0959
  497   0.1079
  498   0.1084
  499   0.1046
  500   0.1180
  501   0.1084
  502   0.1051
  503   0.1248
  504   0.1750
  505   0.2072

解: 正如drmariod建议的那样,我用arrangeGrob替换了grid.arrange。通过这种方式,我可以设置heights = c(0.9,0.1)。然后我更改了原理图plot.margin=unit(c(-1.5,1,0,1), "line")中的边距,一切都按预期工作。

2 个答案:

答案 0 :(得分:0)

而不是去grobs路线,这是怎么回事:

library(ggplot2)

#dummy data
set.seed(123)
rmsf <- data.frame(res=1:100,nm=runif(100))

bindingSite <- data.frame(
  Domain=c("chain","g6p","coEnz"),
  Type=rep("bindingSite",3),
  Start=c(10,20,40),
  Stop=c(15,22,48)
)

#plot
ggplot() +
  geom_rect(aes(xmin=Start,xmax=Stop,ymin=-Inf,ymax=0,fill=Domain),
            bindingSite,alpha=0.4) +
  geom_line(aes(res,nm),rmsf) +
  theme_classic()

enter image description here

答案 1 :(得分:0)

正如drmariod建议的那样,我用arrangeGrob替换了grid.arrange。通过这种方式,我可以设置heights = c(0.9,0.1)。然后我更改了原理图plot.margin=unit(c(-1.5,1,0,1), "line")中的边距,一切都按预期工作。

zx8754解决方案也可以工作,但是在光学系统中或者在同一个图形中添加更多原理图,我认为使用arrangeGrob是最好的选择。