【簡易版】Rでポリゴン(面)にラベル付けする方法

この記事では、簡易版の「Rでポリゴンにラベル付けする方法」について説明します。

こちらの記事の改良版です。

記事の概要です。

  1. 以前の記事では、ポリゴンにラベル付けするために重心座標を計算しました。

  2. 重心座標を計算してポリゴンに結合する処理は、少々手間がかかります。

  3. しかし、geom_sf_text(又は、geom_sf_label)を使えば、重心座標を計算せずにラベル付けができます。

こちらが、geom_sf_textを使ってラベル付けする部分です。

ggplot(shpMuni) + geom_sf(aes(fill = N03_004))  + theme(legend.position = 'none') +
    geom_sf_text(aes(x = X, y = Y, label = N03_004), size = 3)

プログラム全体を示します。

## シェープファイル読み込み
library(sf)
shp <- st_read("./data/N03-20150101_08_GML", options = "ENCODING=SHIFT-JIS")

## 描画
library(ggplot2)
ggplot(shpMuni) + geom_sf(aes(fill = N03_004))  + theme(legend.position = 'none') +
    geom_sf_text(aes(x = X, y = Y, label = N03_004), size = 3)

この記事で使用したRとパッケージのバージョンを記載しておきます。

  • R 3.6.1

  • sf 0.7-6

  • ggplot2 3.2.0

この記事の背景

以前の記事で、ポリゴンにラベル付けする方法を説明しました。

そこでは、

ラベル(市町村名)とラベル付けする位置(経度・緯度)がセットになっていれば、ラベルを付けることができます。

と記載しました。

しかし、geom_sf_text(又は、geom_sf_label)を使えば、ラベル付けする位置(経度・緯度)がセットになっていなくても、ポリゴンにラベル付けすることができます。

簡単なポリゴンへのラベル付け

では、geom_sf_textを使ってポリゴンにラベル付けします。

ラベル付けするのは、茨城県の市町村のポリゴンです。
茨城県のシェープファイルはこちらを参考にダウンロードして下さい。

まず、シェープファイルを読み込みます。

library(sf)
shp <- st_read("../data/N03-20150101_08_GML", options = "ENCODING=SHIFT-JIS")

以前はここで、シェープファイルと重心座標をセットにしたデータを作成しました。
しかし、今回はその必要がありません。

もう、描画します。

library(ggplot2)
ggplot(shpMuni) + geom_sf(aes(fill = N03_004))  + theme(legend.position = 'none') +
    geom_sf_text(aes(x = X, y = Y, label = N03_004), size = 3)

以下の地図が表示されれば、完了です。

市町村名が表示された茨城県の地図(geom_sf_text利用)

おわりに

お疲れさまでした。
以前に比べると、とても簡単でしたね。
さらには、QGISでのラベル付けよりも簡単になったと思います。
こういう便利な関数はぜひ使い、他に労力を割くようにしましょう!

いいなと思ったら応援しよう!