2011-09-28 20 views
7

मेरे पास एक पृष्ठ पर 16 प्लॉट हैं, जो 4x4 ग्रिड में व्यवस्थित हैं। मैं 2x2 के प्रत्येक सेट के चारों ओर एक सीमा रखना चाहता हूं, लेकिन यह कैसे काम नहीं कर सकता है।भूखंडों के समूहों के चारों ओर सीमाएं

मैंने शुरू में सही लेआउट बनाने के लिए layout(matrix(c(1,2,5,6,3,4,7,8,9,10,13,14,11,12,15,16), 4, 4, byrow=TRUE)) का उपयोग किया था, लेकिन, जहां तक ​​मुझे पता है, मौजूदा साजिश और मार्जिन ओवरलैप होने वाली किसी भी साजिश से परे मार्जिन बनाने का कोई तरीका नहीं है।

मैंने जिस दूसरे दृष्टिकोण का प्रयास किया था वह split.screen() का उपयोग करना था, यह सोचकर कि oma() सेटिंग्स केवल वर्तमान स्क्रीन पर लागू होंगी, हालांकि, यह पूरी विंडो पर लागू होती है; उदाहरण के लिए, निम्न कोड पूरे प्रदर्शन क्षेत्र, screen(1) नहीं के बाहरी पर एक सीमा का उत्पादन:

depths <- c(1:10) 
split.screen(c(2,2)) 
screen(1) 
par(oma=c(1,1,1,1)) 
plot(depths) 
box("inner", lty="dotted", col="green") 

oma सेटिंग को सेट करने वांछित परिणाम पैदा नहीं करता के बाद या तो box("inner") या box("outer") के साथ विभिन्न चीजों की कोशिश कर रहा।

क्या कोई अन्य स्पष्ट दृष्टिकोण है जो मुझे कोशिश करनी चाहिए?

धन्यवाद,
क्रिस

उत्तर

5

यहाँ लेआउट का उपयोग कर एक तरीका है:

layout(matrix(c(1,2,5,6,3,4,7,8,9,10,13,14,11,12,15,16), 4, 4, byrow=TRUE)) 
replicate(16, hist(rnorm(100))) 
par(xpd=NA) 
rect(grconvertX(0.005, from='ndc'), grconvertY(0.505, from='ndc'), 
    grconvertX(0.495, from='ndc'), grconvertY(0.995, from='ndc')) 
rect(grconvertX(0.005, from='ndc'), grconvertY(0.005, from='ndc'), 
    grconvertX(0.495, from='ndc'), grconvertY(0.495, from='ndc')) 
rect(grconvertX(0.505, from='ndc'), grconvertY(0.505, from='ndc'), 
    grconvertX(0.995, from='ndc'), grconvertY(0.995, from='ndc')) 
rect(grconvertX(0.505, from='ndc'), grconvertY(0.005, from='ndc'), 
    grconvertX(0.995, from='ndc'), grconvertY(0.495, from='ndc')) 

अपनी पसन्द के अनुसार यह समायोजित करें।

+0

बहुत अच्छा। और हर समय सोचने के लिए मैंने रूपांतरण करना बर्बाद कर दिया है, जब 'grconvertX' पूरा समय था। किसी दिन मुझे बैठना होगा और बुनियादी कार्यों की सूची के माध्यम से पढ़ना होगा। – Aaron

6

box("figure") उपयोग करके देखें:

depths <- c(1:10) 
split.screen(c(2,2)) 
screen(1) 
box("figure") 
split.screen(c(2,2)) 
par(cex=0.5) 
screen(5) 
plot(depths) 
संबंधित मुद्दे