私は、1900年以来フロリダと交差したハリケーン/熱帯低気圧を示すマップの小さな倍数グリッドをプロットしようとしています。私はいくつかの空間クエリーを使って大西洋嵐のデータベースをサブセット化しましたこのプロジェクトのために。forループを使って小さなループをプロットするR
フロリダ州のポリゴン、いくつかの連続した州、フロリダのいくつかの大都市、もちろんオケエホビ湖の上に、私の限られた数のハリケーントラックの行shapefileをプロットしています。
library(maptools)
library(gdata)
library(RColorBrewer)
setwd("~/hurricanes")
# read shapefiles
florida <- readShapePoly("florida.shp")
south <- readShapePoly("south.shp")
hurricanes <- readShapeLines("hurricanes-florida.shp")
cities <- readShapePoints("cities.shp")
lakes <- readShapePoly("lakes.shp")
# miami, orlando and tallahassee (in FL)
cities <- subset(cities, ST == "FL")
# don't need ALL the 'canes
hurricanes1900 <- subset(hurricanes, Season >= 1900)
mycolors <- brewer.pal(5, "YlOrRd")
pdf(file = "hurricanemaps.pdf", ,width=8,height=20)
par(mfrow=c(15,5), mar=c(1,1,1,1))
for(i in 1:nrow(hurricanes1900))
{
plot(south, col="#e6e6e6", border = "#999999")
plot(florida, col="#999999", border = "#999999", add = TRUE)
plot(lakes, col="#ffffff", border = "#999999", add = TRUE)
plot(cities, pch=10, cex=.1,col="#000000", bg="#e38d2c", lwd=1, add = TRUE)
plot(hurricanes1900[i,], col = mycolors[cut(hurricanes$MAX_Wind_W, breaks = 5)],
lwd=3, add = TRUE); title(hurricanes1900$Title[i])
}
dev.off()
三大問題私は遭遇しています:
1)ループが私に各嵐のマップを与えている、ここで簡単なコードです。私は、毎年(たとえ嵐のない年であっても)、その年のすべての嵐、好ましくはラベル付きのフロリダ/南地図をグリッドに作成することを望んでいます。
2)ループの各特定の行にあるものだけでなく、すべての嵐の中で風速の色を設定したいと思います。そうすれば、強い嵐(1992年のアンドリューのような)は、唯一の年の嵐であっても、より暗く表示されます。おそらく、私はそれに応じてスタイルを付けることができるカテゴリ(H1、H2など)変数を記録してこれを解決することができます。
3)私がNo.1を見つけ出すことができると仮定して、私は各嵐の経路上でレンダリングするラベルを得るのに問題があります。 maptoolsのドキュメントは素晴らしいものではありません。とにかく
、ここでの出力は(タイトルはシェープファイル内の2つのフィールドを連結したものです)これまでのところです:
本当の問題は、あなたの助けを事前に1号のおかげです。
小倍数は、ファセットと呼ばれる 'ggplot'、というパッケージにも実装されています。こちらをご覧ください:https://www.r-bloggers.com/world-map-panel-plots-with-ggplot2-2-0-ggalt/ – Chris