2013-01-11 15 views
10

का उपयोग करके उत्पादित रंग घनत्व स्कैटरप्लॉट के लिए आर किंवदंती smoothScatter() फ़ंक्शन का उपयोग करके मैं रंग में घनत्व स्कैटरप्लॉट का उत्पादन कर रहा हूं।चिकनी स्कैटर

उदाहरण:

## A largish data set 
n <- 10000 
x1 <- matrix(rnorm(n), ncol = 2) 
x2 <- matrix(rnorm(n, mean = 3, sd = 1.5), ncol = 2) 
x <- rbind(x1, x2) 
oldpar <- par(mfrow = c(2, 2)) 
smoothScatter(x, nrpoints = 0) 

आउटपुट:

enter image description here

मुद्दा मैं कर रहा हूँ यह है कि मैं एक पौराणिक कथा/रंग पैमाने कि संख्यात्मक दृष्टि से सापेक्ष अंतर का वर्णन जोड़ने के बारे में अनिश्चित हूं विभिन्न रंगों के बीच। उदाहरण के लिए, यह बताने का कोई तरीका नहीं है कि उपरोक्त आकृति में सबसे गहरा नीला 2 गुना, 10 गुना या 100 गुना घना जितना हल्का नीला है, बिना किसी प्रकार के पौराणिक कथा या रंग के पैमाने के। क्या इस तरह के पैमाने को बनाने के लिए आवश्यक जानकारी को पुनः प्राप्त करने के लिए आर में कोई तरीका है, या इसमें निर्मित कुछ भी इस प्रकृति का रंग स्केल स्वचालित रूप से उत्पन्न कर सकता है?

+0

देखें [यह टिप्पणी] (http://stackoverflow.com/questions/8899096/color-bar-for-smoothscatter-in-r#comment11130419_8899096) – mnel

+0

@mnel मैं आवश्यकता होने पर उन दृष्टिकोणों में से एक का सहारा ले सकता हूं, हालांकि आदर्श रूप से मैं 'smoothScatter() 'का उपयोग करके इसे करने के लिए एक तरीका के बाद हूं। –

+0

आपका समाधान (शायद) 'postPlotHook' तर्क का उपयोग करने में शामिल होगा। आप 'फ़ील्ड :: image.plot' फ़ंक्शन को देख सकते हैं कि वे एक किंवदंती कैसे बनाते हैं। – mnel

उत्तर

9

यहाँ एक जवाब है कि fields::imageplot पर निर्भर करता है और par(mar) के साथ कुछ नगण्य तुम क्या चाहते हो और को देखने के लिए मार्जिन सही

fudgeit <- function(){ 
    xm <- get('xm', envir = parent.frame(1)) 
    ym <- get('ym', envir = parent.frame(1)) 
    z <- get('dens', envir = parent.frame(1)) 
    colramp <- get('colramp', parent.frame(1)) 
    fields::image.plot(xm,ym,z, col = colramp(256), legend.only = T, add =F) 
} 

par(mar = c(5,4,4,5) + .1) 
smoothScatter(x, nrpoints = 0, postPlotHook = fudgeit) 

enter image description here

आप image.plot साथ बेला के आसपास कर सकते हैं पाने के लिए है रंगों का प्रतिनिधित्व करने के बारे में एक विचार प्राप्त करने के लिए ?bkde2D और transformationsmoothScatter पर तर्क।

+1

प्रश्न: बार पैमाने में 0.5 क्या इंगित करता है? –

+1

ठीक है। अब, मुझे पता है कि मूल्य fudgeit के समारोह में 'z' की संख्या है। लेकिन जेड क्या इंगित करता है। –

+0

मैं दूसरा प्रश्न पूछता हूं। पैमाने पर संख्या क्या मतलब है? – Rodrigo

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