我开始使用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)



这需要一些工作,但通过将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)
以下是一些截图,表明它有效:


| 归档时间: |
|
| 查看次数: |
4504 次 |
| 最近记录: |