2012-01-05 15 views
10

मैं केवल एक विशिष्ट क्षेत्र के लिए साजिश के लिए पृष्ठभूमि रंग कैसे बदलूं? उदाहरण के लिए, x = 2 से x = 4 तक?आर: केवल विशिष्ट क्षेत्र के लिए साजिश का पृष्ठभूमि रंग बदलें (एक्स-मानों के आधार पर)

बोनस प्रश्न: क्या यह x और y निर्देशांक के संयोजन के लिए भी संभव है? (उदाहरण के लिए (1,2) से (3,4))?

बहुत धन्यवाद!

उत्तर

15

यह आपके वर्णन के लिए कुछ हद तक साजिश के बारे में सोचकर हासिल किया जा सकता है। असल में, आप एक्स-अक्ष पर वांछित पदों के बीच एक रंगीन आयताकार बनाना चाहते हैं, जो पूरे वाई-अक्ष सीमा सीमा को भरता है। इसे rect() का उपयोग करके हासिल किया जा सकता है, और ध्यान दें कि, नीचे दिए गए उदाहरण में, मैं वाई-अक्ष पर सीमाएं देने के लिए वर्तमान साजिश के निर्देशांक (usr) को पकड़ता हूं और हम पूरी सीमा सुनिश्चित करने के लिए इन सीमाओं से परे आकर्षित करते हैं साजिश में शामिल है। अगर हम निर्देशांक का एक वेक्टर प्रदान

plot(1:10, 1:10, type = "n", axes = FALSE) ## no axes 
lim <- par("usr") 
rect(2, lim[3]-1, 4, lim[4]+1, border = "red", col = "red") 
axis(1) ## add axes back 
axis(2) 
box() ## and the plot frame 

rect() आयतों का एक अनुक्रम आकर्षित कर सकते हैं, और यह आसानी के लिए मनमाने ढंग से एक्स, अपने बोनस के y निर्देशांक मामले को संभाल सकता है, लेकिन बाद के लिए यह आसान गलतियों से बचने के लिए है आप एक्स निर्देशांक का एक वेक्टर के साथ शुरू और वाई के लिए एक और नीचे के रूप में निर्देशांक यदि:

X <- c(1,3) 
Y <- c(2,4) 
plot(1:10, 1:10, type = "n", axes = FALSE) ## no axes 
lim <- par("usr") 
rect(X[1], Y[1], X[2], Y[2], border = "red", col = "red") 
axis(1) ## add axes back 
axis(2) 
box() ## and the plot frame 

तुम बस के रूप में आसानी डेटा हो सकता था आप बोनस में यह है के रूप में:

botleft <- c(1,2) 
topright <- c(3,4) 
plot(1:10, 1:10, type = "n", axes = FALSE) ## no axes 
lim <- par("usr") 
rect(botleft[1], botleft[2], topright[1], topright[2], border = "red", 
    col = "red") 
axis(1) ## add axes back 
axis(2) 
box() ## and the plot frame 
+3

आप अधिक जटिल क्षेत्रों को छाया करने के लिए 'बहुभुज' का भी उपयोग कर सकते हैं। कम से कम 'प्लॉट' विधियों के लिए –

+3

, आप 'rect' कॉल को 'पैनल' में भी लपेट सकते हैं। सबसे पहले – baptiste

+0

अच्छे अंक दोनों! –

संबंधित मुद्दे