पर बिंदु डेटासेट के औसत मान मैं ggplot के लिए अपेक्षाकृत नया हूं, इसलिए कृपया मेरी क्षमा करें यदि मेरी कुछ समस्याएं वास्तव में सरल हैं या हल करने योग्य नहीं हैं।एक ग्रिड डेटासेट
जो मैं करने की कोशिश कर रहा हूं वह उस देश का "हीट मैप" उत्पन्न करता है जहां आकार भरना निरंतर होता है। इसके अलावा मेरे पास देश का आकार .RData
है। मैंने अपने स्पेटियल पॉलीगॉन डेटा को डेटा फ्रेम में बदलने के लिए hadley wickham's script का उपयोग किया। मेरे डेटा फ्रेम का लंबा और लेट डेटा अब इस
head(my_df)
long lat group
6.527187 51.87055 0.1
6.531768 51.87206 0.1
6.541202 51.87656 0.1
6.553331 51.88271 0.1
यह लंबा/लेट डेटा जर्मनी की रूपरेखा तैयार करता है। शेष डेटा फ्रेम यहां छोड़ा गया है क्योंकि मुझे लगता है कि इसकी आवश्यकता नहीं है। मेरे पास कुछ लंबे/अक्षांश बिंदुओं के लिए मूल्यों का दूसरा डेटा फ्रेम भी है। यह लग रहा है इस
my_fixed_points
long lat value
12.817 48.917 0.04
8.533 52.017 0.034
8.683 50.117 0.02
7.217 49.483 0.0542
मैं अब क्या करना चाहते हैं क्या की तरह, रंग सब नियत बिन्दु है कि उस समय की एक निश्चित दूरी के भीतर झूठ से अधिक एक औसत मूल्य के अनुसार नक्शा के प्रत्येक बिंदु है। इस तरह से मुझे देश के पूरे मानचित्र का एक (लगभग) निरंतर रंग मिल जाएगा। क्या मैं अब तक है देश के नक्शे को साजिश रची ggplot2 के साथ
ggplot(my_df,aes(long,lat)) + geom_polygon(aes(group=group), fill="white") +
geom_path(color="white",aes(group=group)) + coord_equal()
मेरी पहली आइडिया अंक कि नक्शा है कि तैयार की गई है के भीतर स्थित उत्पन्न करने के लिए और उसके बाद तो जैसे हर उत्पन्न बिंदु my_generated_point
के लिए मूल्य की गणना था
value_vector <- subset(my_fixed_points,
spDistsN1(cbind(my_fixed_points$long, my_fixed_points$lat),
c(my_generated_point$long, my_generated_point$lat), longlat=TRUE) < 50,
select = value)
point_value <- mean(value_vector)
हालांकि मुझे इन बिंदुओं को उत्पन्न करने का कोई तरीका मिला है। और पूरी समस्या के साथ, मुझे यह भी पता नहीं है कि इस तरह से हल करना संभव है या नहीं। मेरा सवाल यह है कि यदि इन बिंदुओं को उत्पन्न करने का कोई तरीका मौजूद है और/या यदि समाधान में आने का कोई और तरीका है।
समाधान
पॉल के लिए धन्यवाद मैं लगभग मैं चाहता था मिल गया। नीदरलैंड के नमूना डेटा के साथ यहां एक उदाहरण दिया गया है।
library(ggplot2)
library(sp)
library(automap)
library(rgdal)
library(scales)
#get the spatial data for the Netherlands
con <- url("http://gadm.org/data/rda/NLD_adm0.RData")
print(load(con))
close(con)
#transform them into the right format for autoKrige
gadm_t <- spTransform(gadm, CRS=CRS("+proj=merc +ellps=WGS84"))
#generate some random values that serve as fixed points
value_points <- spsample(gadm_t, type="stratified", n = 200)
values <- data.frame(value = rnorm(dim(coordinates(value_points))[1], 0 ,1))
value_df <- SpatialPointsDataFrame(value_points, values)
#generate a grid that can be estimated from the fixed points
grd = spsample(gadm_t, type = "regular", n = 4000)
kr <- autoKrige(value~1, value_df, grd)
dat = as.data.frame(kr$krige_output)
#draw the generated grid with the underlying map
ggplot(gadm_t,aes(long,lat)) + geom_polygon(aes(group=group), fill="white") + geom_path(color="white",aes(group=group)) + coord_equal() +
geom_tile(aes(x = x1, y = x2, fill = var1.pred), data = dat) + scale_fill_continuous(low = "white", high = muted("orange"), name = "value")
कृपया एक पुन: उत्पन्न उदाहरण बनाएं। –
मुझे एहसास है कि आप एक इंटरपोलेशन एल्गोरिदम की तलाश में हैं, कृपया मेरी पोस्ट को क्रिगिंग (भूगर्भीय विज्ञान) का उपयोग करके उदाहरण के लिए देखें। –
बढ़िया आपने समाधान पोस्ट किया है, +1। एकमात्र चीज जिसे मैं इंगित करना चाहता हूं वह यह है कि "म्यूट" फ़ंक्शन के लिए लाइब्रेरी (स्केल) गायब है। – Eduardo