2015-03-30 11 views
7

क्या स्पैप्लॉट (स्पप्लॉट बहुभुज) किंवदंती मानचित्र में, निचले बाएं कोने में, मानचित्र को संभव है?मानचित्र में स्पप्लॉट किंवदंती का कस्टम प्लेसमेंट

enter image description here

निकटतम मैं प्राप्त करने में सक्षम किया गया है

यह है (मैं अपने डेटा पोस्टिंग नहीं कर रहा हूँ, मैं सिर्फ, बजाय उदाहरण डेटा उपयोग करती हैं इसलिए इस मामले में, शीर्ष बाएं हिस्से में किंवदंती देने का प्रयास नक्शे के):

data(meuse.grid) 
gridded(meuse.grid)=~x+y 
spplot(meuse.grid[,'dist'], 
    colorkey = list(space = "left", height = 0.5) 
) 

लेकिन कथा पृष्ठ के मध्य में है और बाहर नक्शे के है। दुर्भाग्य से, colorkey तर्क "नीचे बाएं", या एक्स, वाई, या कोने तर्कों का समर्थन नहीं करता है (?levelplot देखें)। मैंने key.space तर्क का उपयोग करने का भी प्रयास किया, लेकिन ऐसा लगता है कि SpatialPoints* की साजिश करते समय यह केवल काम करता है लेकिन यह SpatialPolygons* (या उपरोक्त उदाहरण में स्पैटलियल पिक्सेलडेटाफ्रेम) के लिए अनदेखा लगता है।

उत्तर

9

चूंकि कुंजी स्वयं का एक ग्रोब है, इसलिए इसे प्लॉट ऑब्जेक्ट से निकालने के लिए पूरी तरह से संभव है और जहां भी आप कृपया इसे अलग से खींचें।

library(grid) 

# Separate plot and key 
s <- spplot(meuse.grid[,'dist'], 
    colorkey = list(space = "left", height = 0.5) 
) 
key <- draw.colorkey(s$legend[[1]]$args$key) 
s$legend <- NULL # Otherwise we'd get two keys 

# Modify key 
key$framevp$x <- unit(0.15, "npc") 
key$framevp$y <- unit(0.68, "npc") 

# Plot 
s 
grid.draw(key) 

enter image description here

+3

नाइस: इस बात का सबूत के रूप में, ?lattice::levelplot में colorkey= के लिए दस्तावेज़ (? जो करने के लिए एक 'एसपी :: spplot द्वारा निर्देशित है) देखो! यदि आपको कोई फर्क नहीं पड़ता है, तो मैंने इसे स्पप्लॉट उदाहरणों में जोड़ा। –

+0

बिलकुल नहीं, आपको यह पसंद है! यह एक हैक का एक सा है हालांकि यह साजिश क्षेत्र के आकार के सापेक्ष अपने केंद्र द्वारा कुंजी की स्थिति को परिभाषित करता है, जिससे आंकड़ा रद्द हो जाता है, जिससे इसे स्थान से बाहर निकाला जा सकता है। साजिश क्षेत्र सीमा के लिए एक पूर्ण दूरी के साथ शीर्ष बाएं कोने द्वारा स्थिति को परिभाषित करने का एक बेहतर समाधान होगा, लेकिन मुझे नहीं पता कि दुर्भाग्य से यह कैसे करना है। – Backlin

+0

धन्यवाद बैकलिन !! मैं आपको इस बारे में बिल्कुल पूछना चाहता था - टोपी कोने के सापेक्ष स्थिति। क्या 'key.space' के 'कोने' तर्क की तरह कुछ संभावना नहीं है? – TMS

5

यहाँ उलझी मुद्दा यह है कि, हालांकि colorkey= तर्क legend= तर्क की तरह बहुत ज्यादा व्यवहार किया जाता है, यह काफी समर्थन स्थिति विकल्पों legend= करता है से भरा सूट नहीं करता है। जबकि किंवदंतियों को सीधे "left", "right", "top", "bottom", और "inside" प्लॉट पर रखा जा सकता है, colorkey= केवल उन चारों का समर्थन करता है।

एक काफी स्वच्छ वैकल्पिक हल colorkey तर्क सूची spplot() करने के लिए एक कॉल द्वारा तैयार निकालने के लिए, और कहा कि इसके legend= तर्क के माध्यम से एक दूसरे spplot() कॉल करने के लिए पारित करने के लिए है। colorkey= "जानता" कैसे एक colorkey वस्तु तैयार करने के लिए, और legend= जानता है कि कैसे भूखंडों के अंदर मनमाने ढंग से वस्तुओं आकर्षित करने के लिए है, तो हम हम क्या चाहते हैं पाने के लिए दो गठजोड़ कर सकते हैं:

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

## Call spplot() once as a way to construct a list of arguments 
## to draw.color.key 
SP <- spplot(meuse.grid[,'dist'], 
    colorkey = list(space = "left", height = 0.4) 
) 
args <- SP$legend$left$args$key 

## Prepare list of arguments needed by `legend=` argument (as described in ?xyplot) 
legendArgs <- list(fun = draw.colorkey, 
        args = list(key = args), 
        corner = c(0.05,.75)) 

## Call spplot() again, this time passing in to legend the arguments 
## needed to print a color key 
spplot(meuse.grid[,'dist'], colorkey = FALSE, 
     legend = list(inside = legendArgs)) 

enter image description here

नोट:colorkey= की "अंदरूनी" विकल्प के लिए समर्थन की कमी पैकेज के लेखकों की तुलना में एक डिज़ाइन पसंद कम है, जो अभी तक आवश्यक कोड को लागू करने के लिए नहीं मिल रही है।

colorkey: logical specifying whether a color key is to be drawn 
      alongside the plot, or a list describing the color key. The 
      list may contain the following components: 

      ‘space’: location of the colorkey, can be one of ‘"left"’, 
       ‘"right"’, ‘"top"’ and ‘"bottom"’. Defaults to 
       ‘"right"’. 

      ‘x’, ‘y’: location, currently unused 

      ‘corner’: Interacts with x, y; currently unimplemented 
संबंधित मुद्दे