在R(Win64)中,我嘗試使用layout()命令和定義佈局的矩陣在單個繪圖窗口中繪製光柵圖像和直方圖的組合。下面是一些示例代碼簡化的數據:R - 使用矩陣佈局繪製多個柵格
library(raster)
r <- raster(ncols=5, nrows=5, xmn=1, xmx=5, ymn=1, ymx=5)
rast1 <- rasterize(expand.grid(1:5,1:5), r, rnorm(25))
rast2 <- rasterize(expand.grid(1:5,1:5), r, rnorm(25))
rast3 <- rasterize(expand.grid(1:5,1:5), r, rnorm(25))
layout(matrix(c(1,2,3,4,1,2,3,5,1,2,3,6), 3, 4, byrow=T))
layout.show(6)
plot(rast1, axes=F, ann=F, legend=F, box=F, useRaster=T)
plot(rast2, axes=F, ann=F, legend=F, box=F, useRaster=T)
plot(rast3, axes=F, ann=F, legend=F, box=F, useRaster=T)
hist(rnorm(100), ann=F, axes=F)
hist(rnorm(100), ann=F, axes=F)
hist(rnorm(100), ann=F, axes=F)
正如你所看到的,我想要繪製3幅光柵圖像(rast1,rast2,rast3)跨越1列,每3行,旁邊有3個直方圖,其中每個跨越1列和1行。 layout.show()命令提供了這個想法。
當我運行這段代碼,它似乎是第一個圖(光柵)命令還重置圖形窗口的佈局,使所有後續地塊的標準3x4格繪製(與5號地塊現在重疊第一) 。佈局設置看起來很合理,因爲我可以在適當的佈局中繪製六個直方圖。但柵格地塊搞砸了。
我懷疑有一些關於{raster}中的plot()命令與layout()命令混淆,但我不知道爲什麼或如何。有沒有其他的方法來實現這種佈局?另一個基於光柵的命令?有沒有辦法重置柵格圖之間的佈局?
在此先感謝。
'plot'函數實際上是一系列函數,它們將根據第一個參數的類來調度。您需要查看傳遞給它的對象的類的特定函數。 (可能是'plot.raster') –