2012-10-20 11 views
5

मैं आर के लिए नया हूं, और मैं अंक प्लॉट करने में सक्षम हूं, लेकिन सोच रहा हूं कि स्कैटरप्लॉट में रंग ढाल लगाने का कोई तरीका है या नहीं।आर में, क्या संख्याओं की एक श्रृंखला के आधार पर ढाल पर रंग प्लॉट पॉइंट्स का कोई तरीका है?

मेरे पास 3 कॉलम मैट्रिक्स है, जहां पहले दो को निर्देशांक के रूप में उपयोग किया जाएगा, और तीसरे में 0 और .0001 के बीच संख्याओं की संख्या होगी। क्या संख्याओं की सीमा में गिरने के आधार पर साजिश बिंदुओं को रंगने का कोई तरीका है?

x y z 
15 3 6e-4 
34 22 1e-10 
24 1 5e-2 
... 

plot(x, y, main= "Title", ylab = "column y", xlab = "column x", col = rgb(0,100,0,50,maxColorValue=255), pch=16) 

उत्तर

2

कैसे

के बारे में
plot(x, y, col = gray(z/0.0001)) 

यह ग्रे कर रहा है।

3

मैं ggplot2 पैकेज पर बड़ा हूँ, क्योंकि यह अच्छा साजिश की आदतों को प्रोत्साहित करने के (हालांकि वाक्य रचना एक सा पहली बार में भ्रामक है) एक बहुत करता है: स्वर्गीय

require(ggplot2) 
df <- data.frame(x=x, y=y, z=z) #ggplot2 only likes to deal with data frames 
ggplot2(df, aes(x=x, y=y, colour=z) + #create the 'base layer' of the plot 
    geom_point() + #represent the data with points 
    scale_colour_gradient(low="black", high="green") + #you have lots of options for color mapping 
    scale_x_continuous("column x") + #you can use scale_... to modify the scale in lots of other ways 
    scale_y_continuous("column y") + 
    ggtitle("Title") 
0

, लेकिन दूसरों के इस के लाभ के लिए हो सकता है कि आप इसके बाद क्या हो:

mat = cbind(sample(1:30), sample(1:30), 10*rnorm(30,mean=5)) 
n = 255 
data_seq = seq(min(mat[,3]), max(mat[,3]), length=n) 
col_pal = colorRampPalette(c('darkblue','orange'))(n+1) 
cols = col_pal[ cut(mat[,3], data_seq, include.lowest=T) ] 
plot(mat[, 1:2], col = cols, pch=16, cex=2) 
संबंधित मुद्दे