लक्ष्य के साथ आर में कोई कस्टम गुण की भौगोलिक हीट मैप की तरह http://rentheatmap.com/sanfrancisco.htmlggmap
मैं ggmap और यह की चोटी पर बिन्दु करने में सक्षम के साथ नक्शा मिला कुछ निर्माण करना है।
library('ggmap')
map <- get_map(location=c(lon=20.46667, lat=44.81667), zoom=12, maptype='roadmap', color='bw')
positions <- data.frame(lon=rnorm(100, mean=20.46667, sd=0.05), lat=rnorm(100, mean=44.81667, sd=0.05), price=rnorm(10, mean=1000, sd=300))
ggmap(map) + geom_point(data=positions, mapping=aes(lon, lat)) + stat_density2d(data=positions, mapping=aes(x=lon, y=lat, fill=..level..), geom="polygon", alpha=0.3)
यह घनत्व के आधार पर एक अच्छा छवि है। क्या कोई जानता है कि ऐसा कुछ कैसे दिखाना है, लेकिन समरूपता और स्केल बनाने के लिए स्थिति $ संपत्ति का उपयोग करता है?
मैंने stackoverflow.com के माध्यम से पूरी तरह से देखा और समाधान नहीं मिला।
संपादित करें 1
positions$price_cuts <- cut(positions$price, breaks=5)
ggmap(map) + stat_density2d(data=positions, mapping=aes(x=lon, y=lat, fill=price_cuts), alpha=0.3, geom="polygon")
पांच स्वतंत्र stat_density भूखंडों में
परिणाम:
संपादित 2 (hrbrmstr से) में
positions <- data.frame(lon=rnorm(10000, mean=20.46667, sd=0.05), lat=rnorm(10000, mean=44.81667, sd=0.05), price=rnorm(10, mean=1000, sd=300))
positions$price <- ((20.46667 - positions$lon)^2 + (44.81667 - positions$lat)^2)^0.5 * 10000
positions <- data.frame(lon=rnorm(10000, mean=20.46667, sd=0.05), lat=rnorm(10000, mean=44.81667, sd=0.05))
positions$price <- ((20.46667 - positions$lon)^2 + (44.81667 - positions$lat)^2)^0.5 * 10000
positions <- subset(positions, price < 1000)
positions$price_cuts <- cut(positions$price, breaks=5)
ggmap(map) + geom_hex(data=positions, aes(fill=price_cuts), alpha=0.3)
परिणाम:
यह वास्तविक डेटा पर भी एक सभ्य तस्वीर बनाता है। यह अब तक का सबसे अच्छा परिणाम है। अधिक सुझाव स्वागत है।
संपादित करें 3: यहाँ परीक्षण डाटा और ऊपर एक विधि के परिणाम है:
https://raw.githubusercontent.com/artem-fedosov/share/master/kernel_smoothing_ggplot.csv
test<-read.csv('test.csv')
ggplot(data=test, aes(lon, lat, fill=price_cuts)) + stat_bin2d(, alpha=0.7) + geom_point() + scale_fill_brewer(palette="Blues")
मुझे विश्वास है कि वहाँ होना चाहिए कुछ विधि घनत्व के अलावा अन्य का उपयोग करता है कर्नेल उचित बहुभुज की गणना करने के लिए। ऐसा लगता है कि यह सुविधा बॉक्स के बाहर ggplot में होनी चाहिए, लेकिन मुझे यह नहीं मिल रहा है।
संपादित करें 4: मैं इस जटिल रूप से जटिल प्रश्न के उचित समाधान को समझने के लिए आपको समय और प्रयास की सराहना करता हूं। मैंने आपके उत्तरों को लक्ष्य के लिए एक अच्छा अनुमान के रूप में वोट दिया।
मैंने एक समस्या का खुलासा किया: सर्कल के साथ डेटा बहुत कृत्रिम है और दृष्टिकोण पढ़ने वाले विश्व डेटा पर यह अच्छा प्रदर्शन नहीं करते हैं।
पॉल दृष्टिकोण मुझे साजिश दिया:
ऐसा लगता है कि यह डेटा अच्छा है कि के पैटर्न कैप्चर करता है।
यह रूप में अच्छी तरह पैटर्न मिल गया:
jazzurro के approage मुझे इस साजिश दे दी है। हालांकि, दोनों भूखंड डिफ़ॉल्ट stat_density2d प्लॉट के रूप में सुंदर नहीं लगते हैं। मैं अभी भी कुछ दिनों का इंतजार करूँगा यह देखने के लिए कि कोई अन्य समाधान आएगा या नहीं।यदि नहीं, तो मैं जैज़ूरो को बक्षीस दूंगा क्योंकि यह परिणाम होगा जिसका उपयोग मैं करूँगा।
आवश्यक कोड का एक खुला पायथन + google_maps संस्करण है। हो सकता है कि कोई व्यक्ति यहां प्रेरणा पायेगा: https://github.com/jeffkaufman/apartment_prices
को कस्टमाइज़ करने के लिए रंगों का एक मैट्रिक्स भेजने की आवश्यकता है, क्या आपने 'स्थिति $ price_cuts <- कट (स्थिति $ मूल्य, ब्रेक = 5)' और फिर 'price_cuts' का उपयोग करके कुछ कोशिश की है भरने के लिए '..level..' का? – hrbrmstr
मैंने कोशिश की है। यह ढाल के तराजू के साथ 5 स्वतंत्र परतें उत्पन्न करता है :( –
'geom_hex (डेटा = पदों, एईएस (fill = price_cuts), अल्फा = 0.3) 'जो आप ढूंढ रहे हैं उसके करीब हो सकता है (कुछ रंग tweaks के साथ) – hrbrmstr