首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rworldmap库绘制多个地图

使用rworldmap库绘制多个地图
EN

Stack Overflow用户
提问于 2013-10-18 08:41:01
回答 1查看 1.6K关注 0票数 1

我想使用rworldmap绘制多个地图,其中每列是一个单独的月,行是年。我知道这可以使用facet_grid在ggmap中完成。如何使用rworldmap执行此操作?

例如,mydata文件包含每个点的latitudelongitudemonthyear列。到目前为止我的代码如下:

代码语言:javascript
复制
library(rworldmap)
newmap <- getMap(resolution = "high")
plot(newmap, xlim = c(110, 155), ylim = c(-35, -20), asp = 1)
p1 <- read.csv("mydata.csv")
points(p1$lon, p1$lat, col = "red", cex = .5)
EN

回答 1

Stack Overflow用户

发布于 2013-10-18 22:53:47

要使用rworldmap绘制多个地图,您可以使用布局和几个循环,使用以下代码创建如下所示的绘图。

我知道现在循环不是很酷,但我仍然这么想。也许可以将所有这些都放到一个应用类型函数中,但是在绘图时,循环的速度很少是问题。

(另请参阅常见问题解答http://cran.r-project.org/web/packages/rworldmap/vignettes/rworldmapFAQ.pdf中的第19项多面板图)

代码语言:javascript
复制
library(rworldmap)
newmap <- getMap(resolution = "coarse") #'low' or even 'coarse' resolution map may be sufficient

#example data for 2 years 6 months each
month <- c(1:6,1:6)
year <- c(rep(2012,6),rep(2013,6))
lon <- c(120:131)
lat <- c(-35:-24)
p1 <- data.frame(month=month,year=year,lon=lon,lat=lat)

months <- unique(p1$month)
years <- unique(p1$year)

oldPar <- par(mar=c(2, 0, 0, 2)) #margins top,bottom,left,right

#use layout to create multiple panels including space at top for a title
nPanels <- layout( cbind(c(0,1:6),c(0,7:12))
                   , heights=c(lcm(1),rep(1,6))
                   , respect=F )


for( yrNum in 1:length(years) )
{
  yr <- years[yrNum]
  for( moNum in 1:length(months) )
  {
    mo <- months[moNum]

    cat(yr,mo,"\n")

    plot(newmap, xlim = c(110, 155), ylim = c(-35, -20), asp = 1)
    mtext( paste(yr,"month",mo), cex=0.7) #add titile to subplot

    pMoYr <- p1[ p1$year==yr & p1$month==mo, ]

    points(pMoYr$lon, pMoYr$lat, col = "red", cex = 3)
  }
}

mtext("rworldmap layout demo",outer=TRUE,line=-2)

par(oldPar)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19439689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档