我正在尝试以rmsf图像位于原理图之上的方式合并这两个图。
我使用下面的代码来生成正确的图形,但是我找不到一种方法来删除图底部的大块白色区域(在图形和代码块之间看到的巨大间隙)。 我可以使用gimp或其他软件裁剪它,但我更愿意正确编码。
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
内更改width
和ggsave
,但白色区域始终存在。
用于生成此图的文件是: 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")
中的边距,一切都按预期工作。
答案 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()
答案 1 :(得分:0)
正如drmariod建议的那样,我用arrangeGrob替换了grid.arrange。通过这种方式,我可以设置heights = c(0.9,0.1)
。然后我更改了原理图plot.margin=unit(c(-1.5,1,0,1), "line")
中的边距,一切都按预期工作。
zx8754解决方案也可以工作,但是在光学系统中或者在同一个图形中添加更多原理图,我认为使用arrangeGrob是最好的选择。