2012-04-24 10 views
5

シェイプファイルとその中に含まれるポイントを取得しようとしていて、シェイプファイルのプロットとポイント最終的には、ある程度のアルファ透明度を上にして、上にオーバーレイされた四辺形解析が行われます。ヒートマップのようなスタイルでggplot2のマップの上に四角形の数をプロットする方法

私が試したとなるべきこの例を思い付いた:

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

それではているように私のシェープファイルやデータは、大きく見えるだろうか:私はしたい enter image description here

次のステップさまざまなセルサイズの四分円解析を行い、プロット上の結果をポイントでプロットすることです。私が正常にクォータカウントオブジェクトを取得したとしたら(データを適切なフォーマットに変換する)、それをヒートマップのようなオーバーレイとしてプロットするにはどうすればよいですか?

+0

おそらく、関連する質問は、quadratcountクラスの画像部分を取ること、各セルは、適切なカウント値を持つ多角形であるシェープファイル作成、およびgeom_tile層としてあることをプロットする方法ですか? –

答えて

4

ggplotでヒートマップを追加するには、あなたがgeom_tile、またはそのデフォルトスタット、stat_bin2dを使用することができます。

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

私はまた別の地図投影を可能にするためにmapprojパッケージをインストールした後、あなたはむしろcoord_equalよりcoord_mapを使用することをお勧め。

enter image description here

関連する問題