2012-11-12 11 views
5
library(maptools) 
data(wrld_simpl) 
plot(wrld_simpl) 
box() 

यह मुझे एक विश्व मानचित्र देता है और मानचित्र के भरपूर सफेद स्थान को ऊपर और नीचे दिखाता है। मैं इस जगह को जाना चाहूंगा क्योंकि मुझे कई (~ 60) मानचित्र मुद्रित करने की आवश्यकता है। मैं रिपोर्ट के लिए knitr का उपयोग कर रहा हूं जिसमें मानचित्र एम्बेड किए जाएंगे। जैसेविश्व मानचित्र के सफेद अंतरिक्ष मार्जिन को कैसे कम करें

Here is some text. 
<<chunk.maps, eval = TRUE>>= 
library(maptools) 
plot(wrld_simpl) 
box() 
@ 
And some more text. 

लेकिन मुझे नहीं लगता कि यह knitr प्रश्न है। तो:

  1. मैं सफेद जगह से कैसे छुटकारा पा सकता हूं?
  2. मैं कैसे सुनिश्चित कर सकता हूं कि नक्शा मेरे पृष्ठ को बाएं से दाएं भरता है?

मैं mai की कोशिश की है, mar, par, लेकिन ऐसी कोई भाग्य! मैं अनुमान लगा रहा हूं कि out.width खंड विकल्प के लिए मेरे प्रश्न 2 का परिणाम देगा, लेकिन चूंकि मैं प्रश्न 1 पर इतनी बुरी तरह से फंस गया हूं, मुझे यह बताना मुश्किल लगता है।

बहुत बहुत धन्यवाद! यहां सीखने के लिए बहुत कुछ है!

+0

क्या आपने 'प्लॉट' पर कॉल करने से पहले 'par (mar = rep (0,4)) 'डालने का प्रयास किया है? मैं इस समय knitr/latex के साथ इसकी जांच नहीं कर सकता, लेकिन यह कई आर ग्राफिक्स उपकरणों में सफेद जगह से छुटकारा पाता है। – BenBarnes

+0

'साजिश' कॉल करने से पहले या बाद में 'par (...)' को कॉल करना दुर्भाग्य से चाल नहीं करता है। फिर भी आपका धन्यवाद। आजमाने लायक था। – Gerit

उत्तर

3

मैं नक्शे के इन प्रकार के लिए ggplot2 का उपयोग करें:

require(ggplot2); theme_set(theme_bw()) 
wrld_simpl_df = fortify(wrld_simpl) 
ggplot(wrld_simpl_df, aes(x = long, y = lat, group = group)) + 
    geom_path() + coord_equal() 

enter image description here

यह भी खाली स्थान के आप जहां के बारे में शिकायत भी शामिल है। समस्या यह है कि एक्स- और वाई-अक्ष के बीच पहलू अनुपात तय किया गया है। तो यदि आप एक स्क्वायर ग्राफिक्स डिवाइस चुनते हैं, जो ऊपर और नीचे सफेद सीमाओं को छोड़ देगा। समाधान यह है कि आपके ग्राफिक्स डिवाइस को आपकी साजिश के समान अनुपात में समान अनुपात बनाना है। ऐसा करने के लिए fig.width और fig.height का उपयोग करें। अधिक जानकारी के लिए this link देखें। एक उदाहरण है, जब सही अनुपात के साथ ऊपर की साजिश की बचत के रूप में:

ggsave("/tmp/plt.png", width = 16, height = 9) 

enter image description here

समस्या नहीं रह गया है मौजूद है।

+0

चंक विकल्पों में अकेले 'fig.height' और' fig.width' के साथ मैं ग्राफ के आकार को बदल सकता हूं। यह वही चीज है जो मैं चाहता हूं। महान! सबसे पहले मेरा शीर्षक और किंवदंती बहुत छोटा था, लेकिन मैंने इसे 'par (cex = 2) 'के साथ तय किया। धन्यवाद! (और मुझे मेरे लिए अभी तक एक और नया पैकेज नहीं मिला है, यानी 'ggplot2' -phew!) – Gerit

+0

हां, जब आप मानचित्र खींचते हैं तो आपको साजिश के आयाम से सावधान रहना होगा (उदाहरण के लिए उपयुक्त' fig.height' और 'fig.width' तो नक्शा सफेद जगह में भर जाता है); दूसरा दृष्टिकोण यह है कि इसे आसानी से अकेला छोड़ दें और बाद में भूखंडों को फसल करें (छवियों को क्रॉप करने के लिए [ग्राफिक्स मैनुअल] (https://github.com/downloads/yihui/knitr/knitr-graphics.pdf) देखें) –

+0

@Yihui धन्यवाद आप, मैं आपके योगदान की सराहना करता हूं। अब जब मैंने ग्राफिक्स मैनुअल को फिर से चेक किया है तो मुझे याद है कि मैंने वास्तव में आपके निर्देशों का पालन करने की कोशिश की, लेकिन असफल रहा। (मैं मानता हूं कि मुझे इसका भी उल्लेख करना चाहिए था।) मैं फिर कोशिश कर सकता हूं, अगर मैं त्रुटि संदेश पोस्ट करते समय समुदाय की सहायता करता हूं। हालांकि मैं इसके लिए एक नई पोस्ट खोलूंगा। मुझे बताएं। – Gerit

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