2011-06-28 33 views
7

Tôi đang cố gắng tạo một ma trận các ô, nhưng tôi muốn góc trên bên trái để trống. Vì vậy, tôi đang sử dụng:Lỗi trong khung(): hình lề quá lớn

frame() 

Để đó R đáp ứng:

Lỗi trong frame(): lề con số quá lớn

Tôi đang sử dụng hai dòng sau để tạo bố trí của tôi :

plotIDs <- matrix(c(1:16), 4, 4, byrow = T); 
layout(plotIDs, widths = c(0.5,1,1,1,1), heights = c(0.5,1,1,1,1)); 

và điều này cho tôi bố cục sau:

4 by 4 layout with first row and col at half height

Nếu sau đó tôi phát hành frame() Tôi nhận được lỗi ở trên. Tôi đang làm gì sai? Tôi không thấy bất kỳ cách nào để chỉ định chiều cao hoặc chiều rộng cho lệnh frame() (chỉ là bí danh cho plot.new())?

Trả lời

9

Thông báo có nghĩa là các lề trong hình quá lớn và không để đủ không gian cho ô.

Thử giảm margin:

op <- par(mar = par("mar")/2) 
plot.new() ## this is optional for this example 
plot(1:10) 
par(op) ## tidy up to restore the default par setting 

Bạn có thể bắt đầu với khung() hoặc plot.new(), hoặc chỉ vẽ vào bảng đầu tiên. Lưu ý rằng bạn sẽ cần phải xem xét cài đặt lề phù hợp cho từng bảng điều khiển khác nhau của bạn là gì và tinh chỉnh kích thước nhãn, v.v.

Đối với một bảng điều khiển hoàn toàn trống, bạn cũng có thể giết chết bên lề hoàn toàn:

op <- par(mar = rep(0, 4)) 
plot.new() 
par(op) 
7

Bạn có thể để lại tấm trống sử dụng bố trí bằng việc có một 0 trong ma trận, vì vậy nếu bạn sử dụng thay vì 00:15 1:16 sau đó bảng điều khiển đầu tiên sẽ trống mà không cần phải bỏ qua. Tất nhiên bạn sẽ neet để thiết lập lề và cex cho phần còn lại của các bảng.

+0

đó là một câu trả lời sâu sắc hơn so với tôi – mdsumner

+0

@mdsumner, tôi không biết rằng tôi là sâu sắc hơn, nó là một công việc nhanh chóng xung quanh, nhưng bạn đã sâu hơn về những gì đã thực sự gây ra lỗi và phải làm gì về nó (mà với công việc của tôi xung quanh vẫn còn cần thiết cho các lô thực tế). –

+0

Đúng và bây giờ bạn đã cung cấp bình luận tốt hơn :) – mdsumner

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