Rで解析:ggplot2でデータ付き地図を作成「geofacet」パッケージ


投稿日: Rの解析に役に立つ記事

地図データの準備に手間がかかりますが、用意できれば非常に有効なパッケージと考えます。日本地図データの作成例と共にパッケージを紹介します。

パッケージバージョンは0.1.5。windows 10のR version 3.4.1で動作を確認しています。


日本地図データ例

お好みに合わせて、各都道府県の位置を調整してください。なお、本パッケージの位置は整数で指定する必要があります。

#日本地図データの作成
JapanGrid <- data.frame(
  row = c(1, 3, 4, 5, 6, 7, 8, 4, 5, 6,
        7, 8, 9, 7, 8, 9, 7, 8, 9, 6,
        7, 8, 9, 8, 9, 8, 9, 10, 8, 9,
        8, 9, 8, 9, 11, 12, 11, 12, 9, 9,
        10, 11, 9, 10, 11, 9, 12),
  col = c(16, 16, 16, 16, 16, 16, 16, 15,
        15, 15, 15, 15, 15, 14, 14, 14,
        13, 13, 13, 12, 12, 12, 12, 11,
        11, 10, 10, 10, 9, 9, 8, 8, 7, 7,
        8, 8, 7, 7, 6, 4, 4, 4, 3, 3, 3, 2, 1),
  code = c(&quot;北海道&quot;, &quot;青森県&quot;, &quot;岩手県&quot;, &quot;宮城県&quot;, &quot;福島県&quot;,
         &quot;茨城県&quot;, &quot;千葉県&quot;, &quot;秋田県&quot;, &quot;山形県&quot;, &quot;新潟県&quot;,
         &quot;栃木県&quot;, &quot;埼玉県&quot;, &quot;東京都&quot;, &quot;群馬県&quot;, &quot;山梨県&quot;,
         &quot;神奈川県&quot;, &quot;富山県&quot;, &quot;長野県&quot;, &quot;静岡県&quot;, &quot;石川県&quot;,
         &quot;福井県&quot;, &quot;岐阜県&quot;, &quot;愛知県&quot;, &quot;滋賀県&quot;, &quot;三重県&quot;,
         &quot;京都府&quot;, &quot;奈良県&quot;, &quot;和歌山県&quot;, &quot;兵庫県&quot;, &quot;大阪府&quot;,
         &quot;鳥取県&quot;, &quot;岡山県&quot;, &quot;島根県&quot;, &quot;広島県&quot;, &quot;香川県&quot;, &quot;徳島県&quot;,
         &quot;愛媛県&quot;, &quot;高知県&quot;, &quot;山口県&quot;, &quot;福岡県&quot;, &quot;大分県&quot;, &quot;宮崎県&quot;,
         &quot;佐賀県&quot;, &quot;熊本県&quot;, &quot;鹿児島県&quot;, &quot;長崎県&quot;, &quot;沖縄県&quot;),
  name = c(&quot;北海道&quot;, &quot;青森県&quot;, &quot;岩手県&quot;, &quot;宮城県&quot;, &quot;福島県&quot;,
         &quot;茨城県&quot;, &quot;千葉県&quot;, &quot;秋田県&quot;, &quot;山形県&quot;, &quot;新潟県&quot;,
         &quot;栃木県&quot;, &quot;埼玉県&quot;, &quot;東京都&quot;, &quot;群馬県&quot;, &quot;山梨県&quot;,
         &quot;神奈川県&quot;, &quot;富山県&quot;, &quot;長野県&quot;, &quot;静岡県&quot;, &quot;石川県&quot;,
         &quot;福井県&quot;, &quot;岐阜県&quot;, &quot;愛知県&quot;, &quot;滋賀県&quot;, &quot;三重県&quot;,
         &quot;京都府&quot;, &quot;奈良県&quot;, &quot;和歌山県&quot;, &quot;兵庫県&quot;, &quot;大阪府&quot;,
         &quot;鳥取県&quot;, &quot;岡山県&quot;, &quot;島根県&quot;, &quot;広島県&quot;, &quot;香川県&quot;, &quot;徳島県&quot;,
         &quot;愛媛県&quot;, &quot;高知県&quot;, &quot;山口県&quot;, &quot;福岡県&quot;, &quot;大分県&quot;, &quot;宮崎県&quot;,
         &quot;佐賀県&quot;, &quot;熊本県&quot;, &quot;鹿児島県&quot;, &quot;長崎県&quot;, &quot;沖縄県&quot;))

#作業フォルダに日本地図データを保存
write.csv(JapanGrid, &quot;JapanGrid.csv&quot;, row.names = FALSE)
########
&#91;/code&#93;
<hr />

<h2>パッケージのインストール</h2>
下記コマンドを実行してください。


#パッケージのインストール
install.packages(&quot;geofacet&quot;)

コマンドの紹介

詳細はコマンド、パッケージのヘルプを確認してください。体裁はggplot2のコマンドで調整可能です。

#パッケージの読み込み
library("geofacet")
library("ggplot2")
library("tcltk")

#地図データを読み込む
JapanGrid <- read.csv(paste0(as.character(tkgetOpenFile(title = "ファイルを選択", filetypes = '{"ファイル" {".*"}}', initialfile = c("*.*"))))) ######## ###データ例を作成##### TestJPN <- data.frame(Year = factor(rep(2015:2017, times = nrow(JapanGrid))), Temp = sample(10:20, size = nrow(JapanGrid)*3, replace = TRUE), Name = rep(JapanGrid[, 4], each = 3)) ######## #地図データを表示:grid_previewコマンド grid_preview(JapanGrid) #地図データを利用してデータをプロット:facet_geoコマンド #データの分割方法:facetsオプション;facet_wrapコマンドと同じ #地図データを指定:gridオプション ggplot(TestJPN, aes(x = Year, y = Temp, group = Name, col = Name)) + geom_line(show.legend = FALSE, size = 1.5) + facet_geo(facets = ~ Name, grid = JapanGrid) + scale_x_discrete(labels = function(x) paste0("'", substr(x, 3, 4))) + scale_y_continuous(labels = function(x) format(x, 2)) + labs(title = "2015-2017 各都道府県 仮想年平均気温") + theme(title = element_text(colour = "#ffffe0"), axis.title = element_text(colour = "#ffffe0"), axis.text = element_text(colour = "#ffffe0"), strip.text.x = element_text(size = 8), strip.background = element_rect(colour = "black", fill = "white"), axis.text.y = element_text(size = 5), panel.grid = element_blank(), panel.background = element_rect(fill = "lightgray"), plot.background = element_rect(fill = "#0a0a0a")) #参考:棒グラフで表示 ggplot(TestJPN, aes(x = Year, y = Temp, group = Name, fill = Name)) + geom_col(show.legend = FALSE) + facet_geo(facets = ~ Name, grid = JapanGrid) + scale_x_discrete(labels = function(x) paste0("'", substr(x, 3, 4))) + scale_y_continuous(labels = function(x) format(x, 2)) + labs(title = "2015-2017 各都道府県 仮想年平均気温 棒グラフ") + theme(title = element_text(colour = "#ffffe0"), axis.title = element_text(colour = "#ffffe0"), axis.text = element_text(colour = "#ffffe0"), strip.text.x = element_text(size = 8), strip.background = element_rect(colour = "black", fill = "white"), axis.text.y = element_text(size = 5), panel.grid = element_blank(), panel.background = element_rect(fill = "lightgray"), plot.background = element_rect(fill = "#0a0a0a")) [/code]


出力例

画像をクリックすると拡大できます。

・grid_previewコマンド

・地図データを利用してデータをプロット:facet_geoコマンド

・参考:棒グラフで表示


年甲斐もなく、映画『ノーゲーム・ノーライフ ゼロ』に号泣でした。エンディングロールの「THERE IS A REASON」が終わるまで涙腺崩壊です。少しでも、あなたの解析が楽になりますように!!

スポンサードリンク

関連コンテンツ


スポンサードリンク