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

這給了我一張世界地圖,並顯示了地圖上豐富的白色空間頂部和底部。我希望這個空間消失,因爲我需要打印許多(〜60)地圖。我正在使用knitr作爲嵌入地圖的報告。例如。我想這不是knitr的問題。所以:如何減少世界地圖的空白空間利用率

  1. 我該如何擺脫空白?
  2. 如何確保地圖從左至右填充我的頁面?

我試過mai,mar,par,但沒有這樣的運氣!我猜out.width爲大塊選項將給我的問題2的結果,但由於我對問題1如此嚴重卡住,我覺得很難說。

非常感謝!有很多東西要在這裏學習!

+0

你試過在調用'plot'之前插入'par(mar = rep(0,4))'嗎?目前我無法使用knitr/latex檢查它,但它在許多R圖形設備中擺脫了空白區域。 – BenBarnes

+0

不幸的是,在調用'plot'之前或之後調用'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

這也包括你在哪裏抱怨的空白。問題在於x軸和y軸之間的縱橫比是固定的。所以如果你選擇一個方形的圖形設備,那會在上下留下白色邊框。解決方案是使您的圖形設備具有與您的情節大致相同的比例。使用fig.widthfig.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

@易輝感謝你,我感謝你的貢獻。現在我再次檢查圖形手冊,我記得我實際上試圖按照你的指示,但失敗了。 (我同意我也應該提及這一點)。如果我發佈錯誤消息時幫助社區,我可以再試一次。不過,我會爲它開闢一個新帖子。讓我知道。 – Gerit

相關問題