2012-02-17 9 views
6

मेरा मानना ​​है कि यह प्रश्न scale_fill_brewer( के उपयोग के कारण यहां पूछे गए समान से थोड़ा अलग है।टेक्स्ट/लेबल्स बदलें ggplot legend

Chloropleth

और की तरह कथा:

legend

मुझे यह पसंद है, लेकिन करना चाहते हैं मैं इस एक https://gist.github.com/233134

कि इस तरह दिखता है के लिए एक choropleth समान पर काम कर रहा हूँ 'जैसे कुछ और दोस्ताना के लिए कट दिखने वाले लेबलों से पौराणिक कथाओं पर लेबल्स को बदलें (2, 4] 2% से 4% 'या' 2% - 4% '। मैंने इसे कहीं और देखा है; लेबल के अंदर लेबल को बदलने में आसान है _... जैसा कि here देखा गया है। मुझे लगता है कि लेबल्स = तर्क कहां रखना है। मैं निश्चित रूप से choropleth$rate_d कोड कर सकता हूं लेकिन यह अक्षम है। मुझे labels=c(A, B, C, D...) तर्क कहां रखना चाहिए?

यहाँ हित के कोड का टुकड़ा (पूर्ण कोड के लिए ऊपर दी गई लिंक का उपयोग करें)

choropleth$rate_d <- cut(choropleth$rate, breaks = c(seq(0, 10, by = 2), 35)) 

# Once you have the data in the right format, recreating the plot is straight 
# forward. 

ggplot(choropleth, aes(long, lat, group = group)) + 
    geom_polygon(aes(fill = rate_d), colour = alpha("white", 1/2), size = 0.2) + 
    geom_polygon(data = state_df, colour = "white", fill = NA) + 
    scale_fill_brewer(pal = "PuRd") 

आपकी सहायता के लिए अग्रिम रूप से धन्यवाद है।

संपादित करें: DWin की विधि का उपयोग के स्तर का एक संशोधित संस्करण जोड़ने इसके अलावा

> ggplot(choropleth, aes(long, lat, group = group)) + 
+ geom_polygon(aes(fill = rate_d), colour = alpha("white", 1/2), size = 0.2) + 
+ geom_polygon(data = state_df, colour = "white", fill = NA) + 
+ scale_fill_brewer(pal = "PuRd", labels = lev4) 
Error: Labels can only be specified in conjunction with breaks 
+0

आप बहुत तेज़ हैं। मैंने त्रुटि देखी और इसे ठीक कर दिया। मुझे थोड़ा और जानकारीपूर्ण संदेश मिला: "त्रुटि: लेबल और ब्रेक एक ही लंबाई होना चाहिए" –

उत्तर

10

(इस त्रुटि के रूप में यह है कि क्या मैं के खिलाफ पहले भाग गया है पोस्ट किया है चाहिए), आप भी निर्धारित करने की आवश्यकता 'ब्रेक' पैरामीटर scale_fill_brewer:

lev = levels(rate_d) # used (2, 4] as test case 
lev2 <- gsub("\\,", "% to ", lev) 
lev3 <- gsub("\\]$", "%", lev2) 
lev3 
[1] "(2% to 4%" 
lev4 <- gsub("\\(|\\)", "", lev3) 
lev4 
[1] "2% to 4%" 

ggplot(choropleth, aes(long, lat, group = group)) + 
    geom_polygon(aes(fill = rate_d), colour = alpha("white", 1/2), size = 0.2) + 
    geom_polygon(data = state_df, colour = "white", fill = NA) + 
    scale_fill_brewer(pal = "PuRd", labels = lev4, , breaks=seq(0, 10, by = 2)) 
+0

मैंने कोशिश की और मुझे जो त्रुटि मिल रही थी उसे प्राप्त करें (हालांकि gsub का अच्छा उपयोग)। मैंने इस त्रुटि को दर्शाने के लिए अपनी पोस्ट संपादित की। –

+0

संपादन के बाद यह सही काम करता है। धन्यवाद डीडब्ल्यूएन। यह ब्रेक था! दुह यही त्रुटि है। मुझे नहीं पता था कि इसके साथ क्या करना है। –

+0

@ टायलर रिंकर मुझे एहसास है कि यह थोड़ा कष्टप्रद व्यवहार है, लेकिन मुझे चिंता थी कि लोग लेबल को गलत तरीके से सेट कर सकते हैं और वे ब्रेक के साथ संरेखण से बाहर हो जाएंगे। – hadley