Trong R (Win64), tôi đang cố phác hoạ kết hợp các hình ảnh raster và biểu đồ trong một cửa sổ lô bằng cách sử dụng lệnh layout() với ma trận xác định bố trí. Dưới đây là một số mẫu mã với dữ liệu đơn giản:R - vẽ nhiều raster bằng cách sử dụng bố trí ma trận
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)
Như bạn thấy, tôi đang cố gắng để vẽ ba hình ảnh raster (rast1, rast2, rast3) mà span 1 cột và 3 hàng mỗi, với 3 biểu đồ bên cạnh họ , mỗi cột kéo dài 1 cột và 1 hàng. Lệnh layout.show() đưa ra ý tưởng.
Khi tôi chạy mã này, có vẻ như lệnh đầu tiên (raster) cũng đặt lại bố cục cửa sổ lô, khiến tất cả các ô tiếp theo được vẽ trong lưới 3x4 tiêu chuẩn (với âm mưu thứ 5 chồng lên lần đầu tiên) . Thiết lập bố trí có vẻ như âm thanh, vì tôi có thể vẽ sáu biểu đồ trong bố cục thích hợp. Nhưng cốt truyện raster rối tung lên.
Tôi nghi ngờ có điều gì đó về lệnh plot() trong {raster} đang gây rối với lệnh layout(), nhưng tôi không biết tại sao hoặc như thế nào. Có cách nào khác để đạt được bố cục này không? Một lệnh dựa trên raster khác? Có cách nào để đặt lại bố trí giữa các ô raster không?
Xin cảm ơn trước.
Hàm 'lô' thực sự là một loạt các hàm sẽ được gửi đi trên cơ sở lớp của đối số đầu tiên với hàm đó. Bạn cần phải xem xét các chức năng cụ thể cho các lớp học của đối tượng bạn đang đi qua nó. (Có thể là 'plot.raster') –