如何调整地图大小以填充绘图窗口?

sta*_*010 3 plot r

我开始使用R的map()函数来绘制地图.我注意到,当我调整绘图窗口的大小时,图像不会缩放以填充窗口.我如何让地图图像自动调整大小,取决于我拖动窗口的大小?

我在MacOS上使用R版3.0.2.

例如,这是一个地图,我拖动绘图窗口越来越大.请注意,地图图像的大小不会更改.

library(maps)
map("state")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

在此输入图像描述

另一方面,通常的plot()命令调整图形大小以适应窗口.

plot(1:100, 201:300)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在此输入图像描述

在此输入图像描述

Jos*_*ien 6

这需要一些工作,但通过将maps对象转换为a SpatialPolygonsDataFrame,然后将其转换为spplot()可以获得动态调整大小的地图.

FWIW,我怀疑这更好,因为spplot()它基于网格(通过网格),并且网格图形系统支持更复杂的方式来处理绘图对象中的尺寸,而不是R的基础图形系统.

library(maps)
library(maptools)  ## For map2SpatialPolygons()

## Convert data from a "maps" object to a "SpatialPolygonsDataFrame" object
mp <- map("state", fill = TRUE, plot = FALSE)
SP <- map2SpatialPolygons(mp, IDs = mp$names, 
                          proj4string = CRS("+proj=longlat +datum=WGS84"))
DATA <- data.frame(seq_len(length(SP)), row.names = names(SP))
SPDF <- SpatialPolygonsDataFrame(SP, data = DATA)

## Plot it
spplot(SPDF, col.regions = "transparent", colorkey = FALSE,
       par.settings = list(axis.line = list(col = "transparent")))
Run Code Online (Sandbox Code Playgroud)

以下是一些截图,表明它有效:

在此输入图像描述

在此输入图像描述