आर में नेत्रहीन घनत्व घनत्व नक्शे उत्पन्न करना


27

जबकि मुझे पता है कि आर में गर्मी के नक्शे बनाने के लिए कई कार्य हैं, समस्या यह है कि मैं नेत्रहीन नक्शों का उत्पादन करने में असमर्थ हूं। उदाहरण के लिए, नीचे दिए गए चित्र गर्मी के नक्शे के अच्छे उदाहरण हैं जिनसे मैं बचना चाहता हूं। पहले में स्पष्ट रूप से विस्तार का अभाव है, जबकि अन्य एक (समान बिंदुओं के आधार पर) उपयोगी होने के लिए बहुत विस्तृत है। स्पैटस्टैट आर पैकेज में घनत्व () फ़ंक्शन द्वारा दोनों प्लॉट उत्पन्न किए गए हैं ।

मैं अपने भूखंडों में अधिक "प्रवाह" कैसे प्राप्त कर सकता हूं? मैं जिस चीज के लिए लक्ष्य कर रहा हूं, वह वाणिज्यिक स्पैटियलकेय ( स्क्रीनशॉट ) सॉफ्टवेयर के परिणामों को देखने के लिए अधिक है ।

कोई संकेत, एल्गोरिदम, पैकेज या कोड की लाइनें जो मुझे इस दिशा में ले जा सकती हैं?

यहाँ छवि विवरण दर्ज करें


क्या आपने छवि () फ़ंक्शन को देखा है? विराम की संख्या बढ़ने से संकल्प बढ़ता है।
मैक्रों

जवाबों:


28

दो चीजें हैं जो प्लॉट की चिकनाई को प्रभावित करेंगी, आपके कर्नेल घनत्व के अनुमान के लिए उपयोग की जाने वाली बैंडविड्थ और प्लॉट में आपके द्वारा रंग को तोड़ने वाले ब्रेक।

मेरे अनुभव में, खोजपूर्ण विश्लेषण के लिए मैं सिर्फ बैंडविड्थ को समायोजित करता हूं जब तक कि मुझे एक उपयोगी भूखंड नहीं मिलता। नीचे प्रदर्शन।

library(spatstat)
set.seed(3)
X <- rpoispp(10)
par(mfrow = c(2,2))
plot(density(X, 1))
plot(density(X, 0.1))
plot(density(X, 0.05))
plot(density(X, 0.01))

यहाँ छवि विवरण दर्ज करें

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

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

किंवदंती में पूर्वाग्रह के उदाहरण यहां से अनुकूलित किए गए हैं , और मेरे पास जीआईएस साइट पर एक और पोस्ट है जो यहां बहुत सरल उदाहरण में असतत डिब्बे को रंग देने की व्याख्या करता है । हालांकि यह शुरू होने के दौरान पैटर्न खत्म हो गया है या सुचारू है, हालांकि ये मदद नहीं करेंगे।

Z <- density(X, 0.1)
logZ <- eval.im(log(Z))
bias_palette <- colorRampPalette(c("blue", "magenta", "red", "yellow", "white"), bias=2, space="Lab")
norm_palette <- colorRampPalette(c("white","red"))
par(mfrow = c(2,2))
plot(Z)
plot(logZ)
plot(Z, col=bias_palette(256))
plot(Z, col=norm_palette(5))

यहाँ छवि विवरण दर्ज करें


अंतिम छवि (जहां पहला रंग बिन सफेद है) में रंगों को पारदर्शी बनाने के लिए बस एक रंग रैंप उत्पन्न किया जा सकता है और फिर पारदर्शी रंग के साथ आरजीबी विनिर्देश को बदल सकते हैं। ऊपर दिए गए समान डेटा का उपयोग करके नीचे उदाहरण।

library(spatstat)
set.seed(3)
X <- rpoispp(10)
Z <- density(X, 0.1)
A <- rpoispp(100) #points other places than density


norm_palette <- colorRampPalette(c("white","red"))
pal_opaque <- norm_palette(5)
pal_trans <- norm_palette(5)
pal_trans[1] <- "#FFFFFF00" #was originally "#FFFFFF" 

par(mfrow = c(1,3))
plot(A, Main = "Opaque Density")
plot(Z, add=T, col = pal_opaque)
plot(A, Main = "Transparent Density")
plot(Z, add=T, col = pal_trans)


pal_trans2 <- paste(pal_opaque,"50",sep = "")
plot(A, Main = "All slightly transparent")
plot(Z, add=T, col = pal_trans2)

यहाँ छवि विवरण दर्ज करें


धन्यवाद, बहुत स्पष्ट रूप से नाराज जवाब। यह "spatstat.options (npixel = c (100,100))" कमांड के साथ संयुक्त है जिसे आपने ट्रिक करने के लिए पंक्तिबद्ध किया है। अगर मैं आपको कुछ और परेशान कर सकता हूं: क्या आप जानते हैं कि मैं "पृष्ठभूमि" रंग को पारदर्शी कैसे बना सकता हूं?
फिगारो

1
@ फ़िगारो, मैंने रंगों को अर्ध-पारदर्शी बनाने के एक उदाहरण के साथ अद्यतन किया है।
एंडी डब्ल्यू

धन्यवाद। एक और चीज़। हालांकि यह विषय से थोड़ा हटकर हो सकता है: मैं इन हीटमैप्स को एक आकृति फ़ाइल में कैसे निर्यात करूं? या क्या मुझे उन्हें केवल आपदाओं के रूप में मानने की आवश्यकता है?
फिगारो

मुझे ऐसा कभी नहीं करना पड़ा, इसलिए मैं कुछ नहीं कह सकता। स्टैकओवरफ्लो पर आर गुरु के लिए शायद एक अच्छा सवाल है।
एंडी डब्ल्यू

क्या एक हीटमैप को एक रेखापुंज के अलावा और कुछ के रूप में प्रस्तुत किया जा सकता है?
फिगारो

2

आप akima पैकेज से इंटरप फंक्शन से लाभ उठा सकते हैं। यदि आवश्यक हो तो यह आपको अपने मैट्रिक्स को दूसरे रिज़ॉल्यूशन में इंटरपोलेट करने देगा। अपने लिंक किए गए उदाहरण की तरह कुछ बनाने के लिए, आपको एक बहुत बढ़िया ग्रिड (शायद तर्कों के साथ यो और लंबाई में 1000 ~) होने की आवश्यकता होगी। यह आपको एक नया मैट्रिक्स देगा जिसे आप छवि () के साथ प्लॉट कर सकते हैं। यदि आप पारदर्शिता चाहते हैं, तो यह कुछ अतिरिक्त काम करेगा। रंग पैलेट के साथ ऐसा करना आसान नहीं है, इसलिए आप प्रत्येक ग्रिड को एक निर्दिष्ट रंग के साथ बहुभुज के रूप में प्लॉट कर सकते हैं।


क्या आपके पास पारदर्शिता बनाने के साथ अनुभव है? क्या इसके उदाहरण हैं? वह अगला कदम होगा।
फिगारो

मैं अंतर () के लिए आवश्यक x, y, z मान कैसे बनाऊँ? उदाहरण के लिए, यदि घनत्व () 100x100 ग्रिड का उपयोग करता है, तो मेरे पास प्रत्येक बिंदु के लिए z मान है, लेकिन मेरे पास आवश्यक वेक्टर प्रारूप में x & y नहीं है (मेरे पास केवल एक्सल के निर्देशांक हैं)।
फिगारो

समन्वित जोड़े प्राप्त करने के लिए एक लूप बनाया गया है, लेकिन क्या इसके लिए कोई फ़ंक्शन है?
फिगारो

2
ऐसा लगता है कि छवि सभी के बाद पारदर्शी रंगों को स्वीकार कर सकती है। देखें: menugget.blogspot.de/2012/04/... । यदि आप अभी भी इंटरप का उपयोग करना चाहते हैं, तो आप अपने z स्तरों के लिए अपने xy समन्वय संयोजनों को उत्पन्न कर सकते हैं: "ग्रिड <- Expand.grid (x = x, y = y)"
को बॉक्स

1

आप ggplot2 में देखना चाह सकते हैं। ऐसा लगता है कि आपके द्वारा आज़माए गए पैकेज में शानदार रंग योजनाएं या "प्रवाह" नहीं है - RColorBrewer पर एक नज़र डालें। एक ब्लॉग है जहाँ इसने इन पैकेजों को एक साधारण उदाहरण के साथ लागू किया है।

मुझे यकीन नहीं है कि आप भौगोलिक डेटा को अपने लिंक किए गए उदाहरण में दिखाए जाने की कोशिश कर रहे हैं, लेकिन अगर आप जानते हैं कि Google "स्टेटिक मैप्स एपीआई V2 डेवलपर गाइड" प्रदान करता है और आप Google और R को एक पैकेज, RgoogleMaps के साथ जोड़ सकते हैं

आपको अनुसंधान में सफलता मिले।


क्षमा करें यदि मैं अस्पष्ट था, लेकिन अभी यह समस्या रंग योजना नहीं है। हालाँकि मैंने आज पहले भी आरकॉन्लर ब्रेवेर की कोशिश की थी: एक बहुत ही छोटा पक्का! यह स्थानिक डेटा है, मुझे यकीन नहीं है कि मैं Google API का उपयोग करना चाहता हूं, लेकिन मेरे पास एक नज़र हो सकता है।
फिगारो

0

क्या आपने प्रस्ताव को क्रैंक करने की कोशिश की है density? तर्क dimyx=c(512, 512)या उच्चतर की कोशिश करो ।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.