का उपयोग करके एकाधिक उप-विभाजन और छेद के साथ स्पैटलियल पॉलीगॉन ड्रा करें I ggplot2 में छेद के साथ लाइब्रेरी sp
से SpatialPolygons
आकर्षित करना चाहते हैं। stackoverflow पर दूसरों सवाल के लिए धन्यवाद, मैं जानता हूँ कि इस घड़ी की लिखित बहुभुज साथ काम करते हुए अनुमति दी है कि: के रूप में तैयार हो
http://stackoverflow.com/questions/12047643/geom-polygon-with-multiple-hole/12051278#12051278
वास्तव में, जब एक SpatialPolygons
बदलने broom::tidy
का उपयोग कर (ggplot2::fortify
की जगह), छेद बहुभुज घड़ी की दिशा में सहेजे जाते हैं छेद।
ggplot2 में, जिस तरह से छेद वाले बहुभुज उन्हें fill
का उपयोग करके एक बार खींचने के लिए मजबूर कर रहे हैं, और दूसरी बार colour
का उपयोग करके, अन्यथा आप बहुभुज को पार करने वाली रेखाएं देख सकते हैं। एकाधिक सबपोलिगन्स से निपटने पर, कुछ छेद के साथ, यह अधिक कठिन है, broom::tidy
द्वारा परिभाषित बिंदु सुविधाओं का क्रम बहुभुज भरने की अनुमति नहीं दे सकता है (नीचे छवि देखें)।
क्या आप में से किसी को भी इस समस्या को हल करने के लिए समाधान का समाधान है?ggplot2
library(sp)
library(ggplot2)
# Create two polygons: second would be a hole inside the first
xy = cbind(
x = c(13.4, 13.4, 13.6, 13.6, 13.4),
y = c(48.9, 49, 49, 48.9, 48.9)
)
hole.xy <- cbind(
x = c(13.5, 13.5, 13.45, 13.45, 13.5),
y = c(48.98, 48.92, 48.92, 48.98, 48.98)
)
# Transform as SpatialPolygons with holes
xy.sp <- SpatialPolygons(list(
Polygons(list(Polygon(xy),
Polygon(hole.xy, hole = TRUE)), "1"),
Polygons(list(Polygon(xy + 0.2),
Polygon(xy + 0.35),
Polygon(hole.xy + 0.2, hole = TRUE)), "2")
))
# Transform SpatialObject to be used by ggplot2
xy.sp.l <- broom::tidy(xy.sp)
ggplot(xy.sp.l) +
geom_polygon(aes(x = long, y = lat, group = id, fill = id))
एक समाधान SpatialPolygons समारोह कॉल में बहुभुज को अलग शामिल होगा। जैसे आईडी = 2 के साथ दो बहुभुज 2 ए और 2 बी बन जाते हैं। क्या यह एक संभावना है या आप xy.sp.l के बाद से समाधान की तलाश में हैं। –