आर

2011-05-13 48 views
9

में ggplot geom_polygon के लिए रंग योजना बदलें, मैं नक्शा पुस्तकालय और ggplot के geom_polygon का उपयोग कर मानचित्र बना रहा हूं। मैं बस कुछ और करने के लिए डिफ़ॉल्ट नीली, लाल, बैंगनी रंग योजना को बदलना चाहता हूं। मैं ggplot के लिए बेहद नया हूं इसलिए कृपया माफ कर दें अगर मैं सही डेटा प्रकारों का उपयोग नहीं कर रहा हूं।आर

library(ggplot2) 
library(maps) 

states <- map_data("state") 
m <- merge(states, v, by="region") 
m <- m[order(m$order),] 

p<-qplot(long, lat, data=m, group=group, fill=ratio, geom="polygon") 

मैं नीचे की कोशिश की है और अधिक:

> head(m) 
region  long  lat group order subregion Group.1 debt.to.income.ratio.mean ratio total 
17 alabama -87.46201 30.38968  1  1  <NA> alabama     12.4059 20.51282 39 
18 alabama -87.48493 30.37249  1  2  <NA> alabama     12.4059 20.51282 39 
19 alabama -87.52503 30.37249  1  3  <NA> alabama     12.4059 20.51282 39 
20 alabama -87.53076 30.33239  1  4  <NA> alabama     12.4059 20.51282 39 
21 alabama -87.57087 30.32665  1  5  <NA> alabama     12.4059 20.51282 39 
22 alabama -87.58806 30.32665  1  6  <NA> alabama     12.4059 20.51282 39 

> head(v) 
      Group.1 debt.to.income.ratio.mean ratio  region total 
alabama  alabama     12.40590 20.51282 alabama 39 
alaska   alaska     11.05333 33.33333  alaska  6 
arizona  arizona     11.62867 25.55556 arizona 90 
arkansas  arkansas     11.90300 5.00000 arkansas 20 
california california     11.00183 32.59587 california 678 
colorado  colorado     11.55424 30.43478 colorado 92 

कोड यह रहा: यहाँ क्या डेटा मैं दिखता उपयोग कर रहा हूँ की तरह है

cols <- c("8" = "red","4" = "blue","6" = "darkgreen", "10" = "orange") 
p + scale_colour_manual(values = cols) 
p + scale_colour_brewer(palette="Set1") 
p + scale_color_manual(values=c("#CC6666", "#9999CC")) 

उत्तर

16

समस्या यह है कि आप एक रंग पैमाने का उपयोग कर रहे हैं लेकिन साजिश में भरने सौंदर्य का उपयोग कर रहे हैं। आप तीन रंगों के लिए दो रंग के लिए scale_fill_gradient() और scale_fill_gradient2() उपयोग कर सकते हैं:

p + scale_fill_gradient(low = "pink", high = "green") #UGLY COLORS!!! 

मैं scale_fill_brewer() आपूर्ति की जब एक असतत चर उम्मीद थी एक निरंतर चर के बारे में शिकायत के साथ मुद्दों हो रही थी। एक आसान फिक्स cut() के साथ असतत डिब्बे बनाने के लिए है और उसके बाद इसे भरने के सौंदर्य के रूप में उपयोग करें:

m$breaks <- cut(m$ratio, 5) #Change to number of bins you want 

p <- qplot(long, lat, data = m, group = group, fill = breaks, geom = "polygon") 
p + scale_fill_brewer(palette = "Blues") 
+0

धन्यवाद! एक जादू की तरह काम किया। – tcash21