आर

2012-08-07 13 views
27

में मानों के आधार पर सशर्त रंगों के साथ प्लॉट मैं मूल्यों के आधार पर विभिन्न रंगों के साथ एक ग्राफ प्लॉट करना चाहता हूं। मैं नीचे दिए गए कोड,आर

np_graph <- data.frame(C1 = -5:5, C2 = -5:5) 
x=np_graph2$C1 
y=np_graph2$C2 
plot(x,y,xlab="PC1",ylab="PC2") 

लिखा था अब, अगर एक्स का मान> 0 है, तो है कि मूल्य हरे रंग में होना चाहिए (ग्राफ में)। यदि वाई का मान> 0 है, तो वह मान लाल (ग्राफ़ में) होना चाहिए।

क्या कोई इस में मेरी सहायता कर सकता है?

+3

[प्रतिलिपि प्रस्तुत करने योग्य सवाल] (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) जाने का रास्ता है। मैंने इसे बनाने के लिए अपना प्रश्न संपादित कर लिया है। – mnel

+0

[एक पिछला प्रश्न एक उत्तर प्रदान करता है।] (Http://stackoverflow.com/questions/8774002/color-data-point-in-r-plot/) –

उत्तर

58

तर्क col रंग सेट करेगा, आप इसका उपयोग ifelse कथन के साथ कर सकते हैं। अधिक जानकारी के लिए ?plot देखें।

# using base plot 
plot(x,y,xlab="PC1",ylab="PC2", col = ifelse(x < 0,'red','green'), pch = 19) 

enter image description here

ggplot2 में एक ही बात करने के लिए।

#using ggplot2 
library(ggplot2) 
ggplot(np_graph) + geom_point(aes(x = C1, y = C2, colour = C1 >0)) + 
    scale_colour_manual(name = 'PC1 > 0', values = setNames(c('red','green'),c(T, F))) + 
    xlab('PC1') + ylab('PC2') 

enter image description here

+1

+1 बहुत अच्छा है। एक प्रतिलिपि बनाने के उदाहरण को कैसे नया दिखाया जा सकता है। – Andrie

+0

@mnel बहुत अच्छा जवाब। हालांकि मेरे पास आपका कोई प्रश्न है। यदि मैं x> 1 और y> 2 जैसे हरे रंग का रंग, x < 1 & y > 2 फिर लाल रंग और भूरे रंग के बाकी बिंदुओं को मानना ​​चाहता हूं। मैं इसे कैसे पूरा कर पाऊंगा? – Akshay

+3

@ आर्न - कुछ नेस्टेड 'ifelse' कथन इसे करना चाहिए। उदाहरण के लिए 'col = ifelse (x> 1 और y> 1,' red ', ifelse (x <1&y> 2,' हरा ',' ग्रे ')) ' – mnel