2011-03-01 8 views
5

मुझे डर है कि मेरे पास एक स्पप्लॉट() प्रश्न फिर से है।स्पप्लॉट() - color.key अच्छा लग रहा है

मैं अपने स्पप्लॉट() में रंगों को पूर्ण मानों का प्रतिनिधित्व करने के लिए चाहता हूं, स्वचालित मान नहीं, क्योंकि स्पप्लॉट डिफ़ॉल्ट रूप से करता है।

मैं उस चर के बाहर एक कारक बनाकर प्राप्त करता हूं जिसे मैं आकर्षित करना चाहता हूं (कमांड कट() का उपयोग करके)। यह बहुत अच्छा काम करता है, लेकिन रंग-कुंजी बिल्कुल अच्छा नहीं दिखता है।

यह अपने आप को देखें:

library(sp) 

data(meuse.grid) 
gridded(meuse.grid) = ~x+y 

meuse.grid$random <- rnorm(nrow(meuse.grid), 7, 2) 
meuse.grid$random[meuse.grid$random < 0] <- 0 
meuse.grid$random[meuse.grid$random > 10] <- 10 
# making a factor out of meuse.grid$ random to have absolute values plotted 
meuse.grid$random <- cut(meuse.grid$random, seq(0, 10, 0.1)) 

spplot(meuse.grid, c("random"), col.regions = rainbow(100, start = 4/6, end = 1)) 

मैं कैसे सही पर color.key हो सकता है अच्छे लग रहे हैं - मैं में से प्रत्येक के चरम पर कम टिक और कम लेबल शायद सिर्फ एक लेबल के लिए (चाहते हैं color.key)

अग्रिम धन्यवाद!

[संपादित करें] स्पष्ट मूल्यों के साथ मेरा क्या मतलब है यह स्पष्ट करने के लिए: एक मानचित्र की कल्पना करें जहां मैं समुद्र की ऊंचाई प्रदर्शित करना चाहता हूं। सागर = 0 (जो न्यूनतम मूल्य है) हमेशा नीला प्रदर्शित किया जाना चाहिए। सागर = 10 (जो, उदाहरण के लिए, अधिकतम मूल्य है) हमेशा लाल प्रदर्शित किया जाना चाहिए। यहां तक ​​कि यदि मानचित्र पर प्रदर्शित क्षेत्रों पर कोई समुद्र नहीं है, तो यह नहीं बदला जाना चाहिए। मैं इसे अपने उदाहरण में कट() कमांड के साथ प्राप्त करता हूं। तो यह हिस्सा ठीक काम करता है।

यह मेरा प्रश्न है कि मेरा प्रश्न मुझे जो पसंद नहीं है वह दाईं ओर रंग का विवरण है। 100 टिक हैं और प्रत्येक टिक में एक लेबल है। मुझे कम टिक और कम लेबल चाहिए।

+1

मैं spplot उपयोग नहीं किया है, लेकिन [RColorBrewer] (http://cran.r-project.org/web/packages/RColorBrewer/index.html) लगता है जैसे कि यह यहाँ उपयोगी हो सकता है। मैं आपके कोड के शीर्ष पर 'लाइब्रेरी (एसपी)' जोड़ूंगा ताकि लोग सीधे कॉपी/पेस्ट/रन कर सकें। – Chase

+1

पूर्ण मूल्यों से आपका क्या मतलब है? क्या आप सिर्फ यादृच्छिक मानों को पूर्णांक में गोल करना चाहते हैं? – mdsumner

+0

धन्यवाद चेस! जोड़ा पुस्तकालय (एसपी)! मैंने सोचा कि RColorBrewer सिर्फ रंगों का चयन करने के लिए है !! मैं इसे देख लूँगा! – speendo

उत्तर

6

जाने का तरीका विशेषता colorkey का उपयोग कर रहा है। उदाहरण के लिए:

## labels 
labelat = c(1, 2, 3, 4, 5) 
labeltext = c("one", "two", "three", "four", "five") 

## plot 
spplot(meuse.grid, 
    c("random"), 
    col.regions = rainbow(100, start = 4/6, end = 1), 
    colorkey = list(
     labels=list(
      at = labelat, 
      labels = labeltext 
     ) 
    ) 
) 
0

सबसे पहले, यह बिल्कुल स्पष्ट नहीं है कि आप यहां क्या चाहते हैं। color.key को "अच्छा" बनाने के कई तरीके हैं और यह समझना है कि पहले स्पॉटप्लॉट में डेटा पारित किया जा रहा है और इसके बारे में क्या पूछा जा रहा है। कट() पूरी तरह से स्वरूपित अंतराल प्रदान कर रहा है (2.3, 5.34] जिसे एक अलग तरीके से संभालने की आवश्यकता होगी, साजिश में मार्जिन में वृद्धि, लेबल के लिए विशिष्ट प्रारूपण और अंतर इत्यादि। यह शायद आप नहीं हो सकते अंत में चाहते हैं।

शायद तुम सिर्फ पूर्णांक मूल्यों चाहते हैं, इनपुट मानों से गोल?

library(sp) 

data(meuse.grid) 
gridded(meuse.grid) = ~x+y 

meuse.grid$random <- rnorm(nrow(meuse.grid), 7, 2) 
मूल्यों दौर

(या TRUNC(), प्लस्तर लगाना(), फर्श() उन्हें।।।)

meuse.grid$rclass <- round(meuse.grid$random) 

spplot(meuse.grid, c("rclass"), col.regions = rainbow(100, start = 4/6, end = 1)) 
+0

नहीं, मैं विभिन्न क्षेत्रों में एक प्रश्नावली के जवाब प्रदर्शित करना चाहता हूं। प्रश्नावली के संभावित उत्तर 0, 1, 2, ..., 10. प्रत्येक क्षेत्र में प्रत्येक प्रश्न का अर्थ लेते हुए मुझे दशमलव मान मिलते हैं (हालांकि यह बहुत अच्छे आंकड़े नहीं हैं, क्योंकि उत्तर अलग थे)। मान लें कि न्यूनतम मूल्य 5.5 है और अधिकतम मूल्य 8.5 है। मैं नहीं चाहता कि मेरा नक्शा 5 प्रदर्शित करे।नीले रंग के रूप में 5 और लाल के रूप में 8.5। मैं 0 (यदि अस्तित्व में) नीले रंग के रूप में प्रदर्शित होता हूं और 10 (यदि मौजूद है) लाल के रूप में प्रदर्शित होता है। मेरा मतलब पूर्ण मूल्यों के साथ है। लेकिन मैं नहीं चाहता कि सभी मूल्य color.key में टिक के रूप में प्रदर्शित हों। – speendo

+0

क्या इसका मतलब यह है कि 0 से अधिक और 10 से कम मान वाले किसी भी चीज़ को प्रदर्शित नहीं करना चाहिए? महत्वपूर्ण जानकारी के लिए टिप्पणियों को खोजने के लिए लोगों को बचाने के लिए इसे प्रश्न में रखें – mdsumner

+0

नहीं! इसका मतलब है कि 0 से छोटा और 10 से अधिक कुछ प्रदर्शित नहीं किया जाना चाहिए। असल में सबकुछ लेकिन दाईं ओर वाला लेबल मेरे उदाहरण की तरह होना चाहिए। मैं नहीं चाहता कि दाईं ओर लेबल में कई टिकें और कई कैप्शन हों। बाकी सब कुछ एक जैसा होना चाहिए। मैं अपने प्रश्न में बताऊंगा – speendo

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