5

シェープファイルとそれに含まれるポイントを取り、最終的にシェープファイル、ポイント、そして最終的にはアルファ透明度を上に重ねた二次分析を作成しようとしています。

私は試してみて、役立つはずのこの例を思いつきました:

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))

したがって、私のシェープファイルとデータは大まかに次のようになります。 ここに画像の説明を入力

私が取りたい次のステップは、さまざまなセルサイズの二次分析を実行し、結果を点でプロットすることです。quadratcount オブジェクトを正常に取得したと仮定すると (現在データを適切な形式にラングリングしています)、それをヒートマップのようなオーバーレイとしてプロットするにはどうすればよいでしょうか?

4

1 に答える 1

4

ggplot にヒートマップを追加するにはgeom_tile、 、またはそのデフォルトの statを使用でき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 に答える