ggplot

2012-09-01 25 views
13

में नक्शे के लिए रंग स्केल निर्दिष्ट करना ggplot में नक्शे के लिए रंग स्केल सेट करने में कठिनाई हो रही है। मुझे ग्रेस्केल की ज़रूरत है। एक विचार के लिए बहुत आभारी हूं जहां मैं गलत जा रहा हूं। मुझे यह भी आश्चर्य है कि कलर वैरिएबल को ggplot में प्राप्त करने का एक और अधिक प्रभावी तरीका है (यानी इसे 'fortified' डेटा से जोड़कर)?ggplot

library(ggplot2) 
states <- map_data("state") 
var <- data.frame(table(states$region)) # using rows as a dummy variable 
states$variable <- var$Freq[match(states$region,var$Var1)] 

map <- ggplot(states, aes(x=long, y=lat)) + 
    geom_polygon(aes(group=group, fill=variable), col=NA,lwd=0) 

map + scale_colour_gradient(low='white', high='grey20') 
map + scale_colour_grey() 

enter image description here

+1

यदि यह सहायक है तो मेरे पास ऐसे कार्यों में एक पैकेज है जो एक समारोह के साथ ggplot मानचित्र बनाता है, मानते हुए कि आप डेटा को पहले ही मजबूत कर चुके हैं। आप '' devtools :: install_github ("मैपिंग", "जेरेन्डलैंडर") '' 'द्वारा इंस्टॉल कर सकते हैं। यहां गिटहब पेज है: https://github.com/jaredlander/mapping – Jared

उत्तर

10

आप scale_fill_* और नहीं scale_color_* उपयोग करने के लिए की जरूरत है। बहुभुज ज्यामिति के लिए बहुभुज के भरने वाले रंग fill सौंदर्यशास्त्र के साथ मिलते हैं, color सौंदर्यशास्त्र के लिए नहीं। आम तौर पर, फ़ंक्शन को किसी विशेष पैमाने के विवरण को बदलने के लिए उपयोग किया जाता है scale_ सौंदर्यशास्त्र_नाम _ type_of_scale, उदा। scale_fill_gradient

+2

मैंने ऐसा भी सोचा, लेकिन मुझे इसके साथ 'त्रुटि: निरंतर मूल्य प्रदान करने के लिए निरंतर मूल्य' मिल रहा है। – A5C1D2H2I1M1N2O1R2T1

+2

आपको निरंतर पैमाने का उपयोग करने की आवश्यकता है, उदा। 'Scale_fill_gradient'। –

3

यह कोड मेरे लिए काम करता है।

library(ggplot2) 
states <- map_data("state") 
var <- data.frame(table(states$region)) 
states$variable <- var$Freq[match(states$region,var$Var1)] 
map <- ggplot(states, aes(x=long, y=lat,fill=variable,group=group)) + geom_polygon() 
map + scale_fill_gradient(low='white', high='grey20') 

खंडित चर के साथ समस्याओं को संभालने के लिए एक आसान तरीका है एक "नकली" निरंतर पैलेट रंग पैलेट समारोह का उपयोग कर बनाने के लिए है। नीचे उदाहरण देखें।

रंग पैलेट को परिभाषित करें मैं काले और सफेद के लिए हेक्स कोड का उपयोग यहाँ है, लेकिन आप किसी भी रंग का उपयोग कर सकते

gs.pal <- colorRampPalette(c("#FFFFFF","#000000"),bias=.1,space="rgb") 

अब ggplot समारोह के साथ

x <- rnorm(100) 
dat <- data.frame(cbind(x)) 
dat$fac <- as.factor(sort(rep(1:5,20))) 
dat$y <- x * as.numeric(dat$fac) 

अगला यह साजिश कुछ नकली डेटा बनाने scale_* इस मामले में _manual टाइप करें क्योंकि इसके रंग में आप scale_colour_manual का उपयोग करेंगे, लेकिन ऊपर आप scale_fill_manual

का उपयोग करेंगे
ggplot(dat,aes(x=x,y=y,colour=fac))+geom_point()+scale_colour_manual(values=gs.pal(5)) 
+0

धन्यवाद @DistribEcology, उपयोगी टिप। – geotheory

+0

यदि आप 'scale_colour_brewer() 'फ़ंक्शन का उपयोग करते हैं तो क्या होगा? – linello