ggmap、ggplot、およびgeom_polygonを使用して地図上に重複を重ねることに苦労しています。私はRにはとても新しいので、どのように進むべきかはわかりません。私はR Studioを使用しています。 hereggplot、geom_polygonに重複してggmapにエラーが発生しました。
Alberta(実際にはテスト用の乱数のみ)の国勢調査の地域内に、件数のデータファイルがあります。私はデータをアップロードしました(偽のテストデータです)。私はまた、これらの領域のシェイプファイルを持っています。私はエドモントン市のエリアだけに興味があり、私たちが見ている街のどこが基本的なロードマップなしで見えるのかを知ることは難しいです。
私のコードは以下の通りです:(予想通り)
#################################
#enter long and lat for appx area of City of Edmonton (this is so we can change it easier later to narrow down if we want)
lat1 <- 53.65
lat2 <- 53.44
long1 <- -113.68
long2 <- -113.35
#################################
xcoords <- c(long2, long1)
ycoords <- c(lat2, lat1)
#load data
data <-read.csv("C:.../fakedata.csv") #data file location
names(data)
data
#Load in the shape file
shp=readShapeSpatial('C:.../gda_048b06a_e.shp') #shape file location
plot(shp)
これを与える、地域のためにすべてのDA。しかし、これは大きすぎるので、手作業で手に入り、エドモントンにいるものがどれくらいあるのかを見極めるには多すぎるDAがあります。そうではないので、私は#件のテーマに従って色付けし、緯度:
#Making the data types match
data$amount <-as.numeric(as.character(data$amount))
is.factor(shp$DAUID)
data$DAUID<-as.factor(data$DAUID)
is.factor(data$DAUID) #should be True
is.factor(shp$DAUID) #should be True
[email protected] <- left_join([email protected], data)
head([email protected])
map2 <- fortify(shp, region = "DAUID")
#wait a bit for the fortify to work!
map2 <- rename(map2, DAUID = id)
map2 <- left_join(map2, [email protected])
ggplot2 <- ggplot(map2)
#DA map
datamap <- ggplot2 + geom_polygon(aes(long, lat, group = group, fill = amount),color = "grey") +
scale_fill_gradient(low='white', high='red') + coord_map(xlim =
xcoords,ylim = ycoords)
datamap
datamapも同様です。
#map of Edm
edmonton <- get_map(location = 'edmonton',maptype="road")
ggmap(edmonton)
は、私は何をしたいのロードマップ上に自分のDAマップをオーバーレイであるので、我々は、光領域対暗いがどこにあるかの良いアイデアを得ることができます。私はこの時点でエラーを受け取るようになっています。
#stuck on how to overlay datamap on top of ggmap(edmonton)
datamap2 <- ggmap(edmonton) + datamap
datamap2
私はこのエラーが表示されます。
Error in p + o : non-numeric argument to binary operator In addition: Warning message: Incompatible methods ("+.gg", "Ops.data.frame") for "+"
私は同様の問題に見てきましたが、私はそれをするために得るように見えることはできませんソリューションを組み込むしようとしている一週間のためにそれを周りにプレイしました作業。私のシェイプファイルは私の都市マップよりもはるかに大きいので、それが問題になるかもしれませんか?私は前にRでこのようなことをしたことは一度もなく、GISは私のスキルセットの外にあります。
私の質問はこのprevious questionと似ていますが、その解決策は私のためには機能しませんでした。他の質問と内容が近すぎるとお詫び申し上げます。ご指摘いただきありがとうございます。
(私もこれが長すぎる!私は任意の有用な情報を残したくなかった謝罪)
!まさに私が探していたもの。私は問題がポリゴンであることを認識しませんでした。ご助力ありがとうございます! :) –
@ A.Mullinsあなたを助けてくれてありがとう。私はあなたが何をしているのか分からなかった。だから自分のやり方でそれを作り出しました。私はエラーメッセージがggmap()に追加しようとしていたものが互換性がないことを示していたと思います。あなたが私のコードを見たら、私は 'ggplot()'を呼び出さないのですか?あなたのケースでは、あなたは 'ggmap()'を呼び出し、 'ggplot()'を含むオブジェクトを追加しようとしました。私はこれがエラーメッセージの原因だと思った。しかし、結論は、あなたが今望んでいる地図を持っているということです。 :) – jazzurro
あなたの情報については、私はggmapに国勢調査の境界線を描画するパッケージを、 'geom_boundary()'、https://github.com/GL-Li/ggtigerの1つの関数で作成しています。それがあなたに役立つことを願っています。 –