2011-12-13 13 views
5

मैं विभिन्न मानों से भरे कई मानचित्र उत्पन्न करने के लिए फ़ेसटिंग का उपयोग करने का प्रयास कर रहा हूं।मानचित्रों की ग्रिड उत्पन्न करने के लिए geom_polygon के साथ फ़ेसटिंग का उपयोग कैसे करें

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

require(ggplot2) 
require(maps) 

map <- map_data("state") 
states <- unique(map$region) 

# generate some hypothetical communities  
runA <- data.frame(region=states, id="A", 
        community=rbinom(length(states),1,.5)) 
runB <- data.frame(region=states, id="B", 
        community=rbinom(length(states),1,.5)) 

membership <- rbind(runA, runB) 

# plot an individual map of communities from run A 
df <- merge(map, runA, by="region") 
ggplot(df) + 
    aes(long, lat, group=group) + 
    coord_equal() + 
    geom_polygon(aes(fill = as.factor(community))) 

# likewise for B 
df <- merge(map, runB, by="region") 
ggplot(df) + 
    aes(long, lat, group=group) + 
    coord_equal() + 
    geom_polygon(aes(fill = as.factor(community))) 

# now instead do one plot with two maps from facetting on id 
df <- merge(map, membership, by="region") 
ggplot(df) + 
    aes(long, lat, group=group, facets= id ~.) + 
    coord_equal() + 
    geom_polygon(aes(fill = as.factor(community))) 

आदर्श रूप में पिछले भूखंड दो नक्शे, एक 'ए' में समुदाय दिखा और अन्य 'बी' में समुदाय दिखा होनी चाहिए। इसके बजाए, साजिश केवल एक नक्शा दिखाती है और मुझे यह भी सुनिश्चित नहीं है कि भरने के लिए मैप किया जा रहा है।

उत्तर

8

आपने अभी गलत तरीके से पहलुओं को निर्दिष्ट किया है। इसे इस तरह के बजाय करो और यह ठीक काम करेंगे:

ggplot(df) + 
    aes(long, lat, group=group) + 
    coord_equal() + 
    geom_polygon(aes(fill = as.factor(community))) + 
    facet_grid(facets= id ~.) 

enter image description here

+0

धन्यवाद! 'एईएस()' में 'पहलुओं' सौंदर्यशास्त्र को निर्दिष्ट करना क्यों संभव है? –

+0

मुझे लगता है कि यह इस तरह काम करता है क्योंकि पहलू प्रणाली वास्तव में एक सौंदर्य नहीं है, बल्कि पैमाने और समन्वय जैसे एक अलग साजिश घटक है। तो यह भविष्य में 'facet_grid',' facet_wrap', या संभावित रूप से अन्य हो सकता है, और इसे केवल मानक सौंदर्य मैपिंग के साथ पूरी तरह से निर्दिष्ट नहीं किया जा सका। –

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

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