LoginSignup
0
0

More than 3 years have passed since last update.

緯度・経度を反映させたネットワーク図を描きたい。

Last updated at Posted at 2020-01-19

はじめに

以前作成したプロジェクト参画機関の地図へのプロット(ggplot2で地図にプロジェクト参画機関の所在地をプロットする。)に関して、Rで緯度と経度を重ね合わせたネットワーク図を描いてみたいと思っていました。

スクリーンショット 2020-01-19 18.16.17.png

最終的にはこちらにプロットした地図に、ノードだけでなくエッジも反映させたネットワークグラフを描画したいと思っています。

色々試行錯誤してみたのですが、結論的にはうまくできませんでした。
今後のために、途中経過を記載しておこうとおもいます。
また、詳しい方がいらっしゃったらアドバイス頂けますと幸甚です。

snaパッケージを使ってみる。

以下のスライドでsnaパッケージを使用したグラフの作成方法が紹介されていました。

こちらのスライドを参考に作成にさせて頂き、以下のコードを記載しました。

R
#snaパッケージを読み込み
library(sna)

#二部グラフのcsvファイルを読み込み
proj <- read.csv("proj.csv", row.names = "proj") 
proj <- as.matrix(proj)
result <- proj%*%t(proj)  

#念のため「result」の内容を確認。
> result
  k n s
k 2 0 1
n 0 1 0
s 1 0 1

#プロット地点の緯度・経度を記載したcsvファイルを読み込む。「locsaitama」と定義。
locsaitama <- read.csv("location.csv",header = T,row.names = 1)
#locsaitamaの緯度と経度が記載されている1列目と2列目を「coo」と定義。
coo <- locsaitama[,1:2]

#プロットする。
#coord = cooで、座標にcooを反映
#displaylabels = TRUEでラベルを表示。
#jitter = FALSEで頂点の座標のブレを無くす。
gplot(result,gmode = "graph",coord = coo,displaylabels = TRUE,jitter = FALSE)

なお、proj.csvの内容は以下のとおりです。
スクリーンショット 2020-01-20 21.20.38.png

また、location.csvの内容は以下のとおりです。
スクリーンショット 2020-01-19 17.45.35.png

すると、こんな感じで出力されます。
スクリーンショット 2020-01-20 21.26.00.png

最初の地図のプロットと比較してみると、位置的には緯度・経度が反映されているようです。

しかし、これに地図を重ねることができませんでした。

共立出版から2017年に出版された「Rで学ぶデータサイエンス8 ネットワーク分析 第2版」の第11章p302では、GGallyパッケージのggnetworkmap関数を用いた方法が記載されており、最終的にはこんな感じの表示をしたいと思っています。
(著者の先生のブログにグラフが掲載されています。)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0