地図上に航空路線を描く
Rのsna、maps、ggplot2などのパッケージを用いて地図上にネットワークを描画する例です。
使用するパッケージを事前にインストールしておきます
install.packages("network")
install.packages("sna")
install.packages("maps")
install.packages("geosphere")
install.packages("ggplot2")
install.packages("GGally")
以下のRコードを実行します。
library(network)
library(sna)
library(maps)
library(ggplot2)
library(GGally)
airports <- read.csv("http://www.geocities.jp/snatool/sampledata/airport.csv", header = TRUE)
rownames(airports) <- airports$airport
flights <- read.csv("http://www.geocities.jp/snatool/sampledata/top50.csv", header = TRUE)
flights.net <- network(flights[,1:2], directed = FALSE)
flights.net %v% "lat" <-
airports[network.vertex.names(flights.net), "latitude"]
flights.net %v% "lon" <-
airports[network.vertex.names(flights.net), "longitude"]
flights.net %v% "type" <-
as.character(airports[network.vertex.names(flights.net), "type"])
flights.net %v% "degree" <- degree(flights.net, gmode = "graph")
jpn <- ggplot(map_data("world2", "japan"), aes(x = long, y = lat)) +
geom_polygon(aes(group = group), color = "grey65",fill = "grey90")
ggnetworkmap(jpn, flights.net, size = 7, node.group = type,
node.alpha = 0.6, weight = degree, ring.group = degree,
great.circle = TRUE, segment.color = "steelblue", segment.alpha = 0.4)