fortify{ggplot2} 中 id、group 和 region 的区别
Difference between id, group and region in fortify{ggplot2}
当使用fortify{ggplot2}
将SpatialPolygonsDataframe
转换为[=16时,使用id
、group
和region
究竟有什么区别=] ?该文档对于使用这些参数的好处/含义不是很清楚。对这些也有什么想法吗?
这是一个可重现的例子:
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
}
所有...
参数被完全丢弃。因此您可以传递 id
或 group
而不会出错,但输出应该与仅定义 model
.
相同
我不确定你为什么使用 id
或 group
。
当使用fortify{ggplot2}
将SpatialPolygonsDataframe
转换为[=16时,使用id
、group
和region
究竟有什么区别=] ?该文档对于使用这些参数的好处/含义不是很清楚。对这些也有什么想法吗?
这是一个可重现的例子:
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
}
所有...
参数被完全丢弃。因此您可以传递 id
或 group
而不会出错,但输出应该与仅定义 model
.
我不确定你为什么使用 id
或 group
。