fortify{ggplot2} 中 id、group 和 region 的区别

Difference between id, group and region in fortify{ggplot2}

当使用fortify{ggplot2}SpatialPolygonsDataframe转换为[=16时,使用idgroupregion究竟有什么区别=] ?该文档对于使用这些参数的好处/含义不是很清楚。对这些也有什么想法吗?

这是一个可重现的例子:

library(ggplot2)
library(UScensus2000tract)

# load data
  data("oregon.tract")

# fortify
  oregon_noth <- fortify(oregon.tract)
  oregon_id <- fortify(oregon.tract, id="tract")
  oregon_grp <- fortify(oregon.tract, group="tract")
  oregon_reg <- fortify(oregon.tract, region="tract")

identical(oregon_noth, oregon_id)
>[1] TRUE

identical(oregon_id, oregon_grp)
>[1] TRUE

identical(oregon_id, oregon_reg)
>[1] FALSE

使用ggplot2:::fortify.SpatialPolygonsDataFrame我们可以看到发生了什么:

function (model, data, region = NULL, ...) 
{
    attr <- as.data.frame(model)
    if (is.null(region)) {
        coords <- plyr::ldply(model@polygons, fortify)
        message("Regions defined for each Polygons")
    }
    else {
        cp <- sp::polygons(model)
        unioned <- maptools::unionSpatialPolygons(cp, attr[, 
            region])
        coords <- fortify(unioned)
        coords$order <- 1:nrow(coords)
    }
    coords
}

所有...参数被完全丢弃。因此您可以传递 idgroup 而不会出错,但输出应该与仅定义 model.

相同

我不确定你为什么使用 idgroup