5

我正在尝试获取 shapefile 和其中包含的点,并最终得到 shapefile、点的图,然后最终在顶部进行样方分析,并带有一定量的 alpha 透明度。

我尝试并提出了这个应该服务的示例:

library(ggplot2)
library(maps)
library(maptools)
library(spatstat)
library(plyr)

# generate polygons
usa <- map('usa', plot=F)
IDs <- sapply(strsplit(usa$names, ':'), function(x) x[1])
crs <- CRS('+proj=longlat +ellps=WGS84')
usa.sp <-map2SpatialPolygons(usa, IDs=usa$names, proj4string=crs)
usa.pts <- fortify(usa.sp, region="id")

base.plot <- ggplot(usa.pts, aes(x=long, y=lat)) +
              geom_path(aes(group=id)) +
              coord_equal()

# generate point process
lon <- runif(5000, min(usa.pts$long, na.rm=TRUE), max(usa.pts$long, na.rm=TRUE))
lat <- rnorm(5000, mean(usa.pts$lat, na.rm=TRUE), sd=sd(usa.pts$lat, na.rm=TRUE)/2)
points <- data.frame(lon, lat)
points.sp <- SpatialPoints(points, proj4string=crs)
points <- points[which(!is.na(over(points.sp, usa.sp))),]

# the first plot
base.plot +
  geom_point(data=points, aes(x=lon, y=lat), color="red", alpha=I(0.5))

那么我的 shapefile 和数据大致如下: 在此处输入图像描述

我想采取的下一步是对各种像元大小进行样方分析,并用点将结果绘制在图上。假设我成功获得了一个 quadratcount 对象(现在将数据转换为正确的格式),我将如何将其绘制为类似热图的叠加层?

4

1 回答 1

4

要在 ggplot 中添加热图,您可以使用geom_tile或其默认统计信息stat_bin2d

library(mapproj)
base.plot +
  stat_bin2d(data=points, aes(x=lon, y=lat), bins=100) +
  coord_map()

我还建议您在安装软件包后使用coord_map而不是, 以启用不同的地图投影。coord_equalmapproj

在此处输入图像描述

于 2012-04-26T17:32:03.123 回答