このページの下のような世界ネットワーク マップを R で作成したいと思います。
これを可能にする R パッケージを探していましたが、見つかりませんでした。R の D3 JavaScript Network Graphsがありますが、ワールド ネットワーク マップの例は見つかりませんでした。
Rで似たようなものを作成するにはどうすればよいですか?
このページの下のような世界ネットワーク マップを R で作成したいと思います。
これを可能にする R パッケージを探していましたが、見つかりませんでした。R の D3 JavaScript Network Graphsがありますが、ワールド ネットワーク マップの例は見つかりませんでした。
Rで似たようなものを作成するにはどうすればよいですか?
geosphere
andmaps
パッケージを使用したソリューションを次に示します。このgcIntermediate
機能を使用すると、「大円を定義するために使用される 2 つの点の間の大円上の中間点」を作成できます。
以下は、JKF 空港からのフライトの条件を示す例です ( でnycflights13
フィルタリングされたパッケージのサンプル データdplyr
)。
library(maps)
library(geosphere)
library(dplyr)
library(nycflights13)
usairports <- filter(airports, lat < 48.5)
usairports <- filter(usairports, lon > -130)
usairports <- filter(usairports, faa!="JFK")
jfk <- filter(airports, faa=="JFK")
map("world", regions=c("usa"), fill=T, col="grey8", bg="grey15", ylim=c(21.0,50.0), xlim=c(-130.0,-65.0))
for (i in (1:dim(usairports)[1])) {
inter <- gcIntermediate(c(jfk$lon[1], jfk$lat[1]), c(usairports$lon[i], usairports$lat[i]), n=200)
lines(inter, lwd=0.1, col="turquoise2")
}
points(usairports$lon,usairports$lat, pch=3, cex=0.1, col="chocolate1")
これは、私のブログに投稿されたチュートリアルに基づいています。