【问题标题】:How to put multiple layers in one frame using R?如何使用 R 在一帧中放置多个图层?
【发布时间】:2012-04-05 10:27:54
【问题描述】:

我正在使用 R 来绘制地图文件。

setwd("c:\\apa\\")
# Load libraries
library("maptools")
library("RColorBrewer")
library("classInt")
library("R2wd")
library("Hmisc")
library("plyr")
library("ggplot2")
library("rgdal")

file.path <- "c:\\apa\\"
file.name <- "apa_planalto_central"
apa <-readShapePoly(paste(file.path,file.name,sep=""))

file.name <- "AUTORIZACAO_09889652011"
auth <-readShapePoly(paste(file.path,file.name,sep=""))

file.name <- "CLIP_HIDROGRAFIA_APA"
hidro <-readShapeLines(paste(file.path,file.name,sep=""))

file.name <- "ferrovias"
ferrovias <-readShapeLines(paste(file.path,file.name,sep=""))

file.name <- "lagos_df"
lagos <-readShapePoly(paste(file.path,file.name,sep=""))

file.name <- "limite_df"
limites <-readShapeLines(paste(file.path,file.name,sep=""))

file.name <- "rodovias"
rodovias <-readShapeLines(paste(file.path,file.name,sep=""))


plot(apa)
plot(...)

我想用一张图绘制所有这些形状(线条和多边形),覆盖所有图层,在一个图上叠加多个图层。这可能吗?

【问题讨论】:

    标签: r overlay layer


    【解决方案1】:

    你可以使用类似下面的东西:

    plot(apa)
    plot(auth, add=T)
    

    只需在plot() 函数中使用add=T

    【讨论】:

      【解决方案2】:

      在 ggplot2 中,您可以堆叠多个几何图形。这类似于:

      ggplot(aes(x = x, y = y), data = pointset1) +
        geom_point() +
        geom_polygon(aes(fill = z), data = polyset1) +
        etc
      

      这假设所有数据集都在同一个投影中,都使用列名 x 作为 x 坐标等。请注意,ggplot2 与 data.frames 一起使用,而不是 sp 对象。使用函数 fortify 将 SpatialPolygons 对象转换为 data.frame。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-14
        • 2016-03-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多