如何减少世界地图的空白边距

时间:2012-11-12 12:29:38

标签: r ggplot2 knitr maptools

library(maptools)
data(wrld_simpl)
plot(wrld_simpl)
box()

这给了我一张世界地图,并显示了地图顶部和底部的丰富空白区域。我希望这个空间消失,因为我需要打印许多(~60)地图。我正在使用knitr来嵌入地图的报告。 E.g。

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

但我不认为这是一个knitr问题。所以:

  1. 我怎样才能摆脱白色空间?
  2. 如何确保地图从左到右填充我的页面?
  3. 我尝试了maimarpar,但没有这样的运气!我猜out.width chunk选项会给出我的问题2的结果,但由于我在问题1上如此严重,我觉得很难说。

    非常感谢!这里有很多值得学习的东西!

1 个答案:

答案 0 :(得分: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

问题不再存在。