2012-08-26 30 views
5

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.

+0

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') –

Trả lời

4

Có thể có sự cố giữa phương thức S4 và bố cục() tại đây. Như một giải pháp thay thế, nó dường như làm việc để thay thế cốt truyện() bằng hình ảnh(). Thay vì âm mưu (rast1, trục = F, ann = F, chú thích = F, hộp = F, useRaster = T), sử dụng ảnh (rast1, axes = F, ann = F, asp = 1) để lấy bản đồ hình vuông.

+0

Tuyệt vời! Làm việc như một say mê. Cảm ơn dcarlson! –

+0

Làm thế nào để bạn lấy lại truyền thuyết mà bạn sử dụng hình ảnh thay vì cốt truyện cho raster – jjunju

Các vấn đề liên quan