6
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没有这样的运气!我猜测chunk 选项会给出我的问题 2 的结果,但由于我严重卡在问题 1 上,我发现很难说。marparout.width

非常感谢!这里有很多东西要学!

4

1 回答 1

4

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()

在此处输入图像描述

这还包括您抱怨的空白。问题是 x 轴和 y 轴之间的纵横比是固定的。因此,如果您选择方形图形设备,则会在上方和下方留下白色边框。解决方案是使您的图形设备具有与您的绘图大致相同的比例。使用fig.widthfig.height来执行此操作。有关更多信息,请参阅此链接。作为说明,当以正确的比例保存上面的图时:

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

在此处输入图像描述

问题不再存在。

于 2012-11-12T12:56:05.597 回答