1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

R インタラクティブマップでポイントのシンボルを絵文字にする

Last updated at Posted at 2020-04-20

temoji3.png

別のことやっているときに発見したのでメモ。
シンボルを変更できるとArcGISとかQGISの地図っぽくなって見た目的にうれしい。
今回は地図の描画にtmapを使うが、おそらく他の地図描画パッケージでも似たようなことができると思う。

tmapについては以前の記事(Rのtmapパッケージでインタラクティブな主題図の作成&ウェブ上での公開)を参照。

方法

データ

今回は以前の記事で用いた

を使用する。リンク先から手順に従って取得し、ZIPを解凍してディレクトリに展開しておく。

準備

さきほど展開したファイルがあるディレクトリを作業ディレクトリにしてRを立ち上げる。

パッケージは以下のものを使用するので読み込んでおく。

library(tidyverse)
library(sf)
library(tmap)

次に公園データを読み込んで、世田谷区のデータだけを抜き出しておく。

park <- st_read("P13-11_13.shp", options = "ENCODING=CP932", crs = 4612) # エンコーディングとCRS(ここではJGD2000)を指定
park.setagaya <- park %>% filter(P13_006 == "世田谷区")  # 世田谷区の公園を抽出

絵文字コードの確認

UnicodeのEmojiの一覧 - Wikipedia等で絵文字コードを確認しておく。
今回は「DECIDUOUS TREE」を使うので、コードは「U+1F333」。

絵文字参照用の列を追加

さきほどのpark.setagayaの属性に絵文字参照用の列を追加する。その際絵文字コードの前にバックスラッシュを入れ、「+」を「000」に変更して以下のように記述する。

park.setagaya.emoji <- park.setagaya %>% mutate(emoji = "\U0001F333")

これで以下のように属性emojiの各要素に絵文字が入る。

Simple feature collection with 371 features and 11 fields
geometry type:  POINT
dimension:      XY
bbox:           xmin: 139.5864 ymin: 35.59445 xmax: 139.6812 ymax: 35.68182
CRS:            EPSG:4612
First 10 features:
   P13_001  P13_002              P13_003 P13_004 P13_005  P13_006 P13_007
1   東京都     <NA> 駒沢オリンピック公園       5  東京都 世田谷区    1964
2   東京都     <NA>           蘆花恒春園       9  東京都 世田谷区    1938
3   東京都     <NA>               砧公園       4  東京都 世田谷区    1957
4   東京都     <NA>           祖師谷公園       4  東京都 世田谷区    1975
5   東京都 世田谷区         淡島通り公園       1  東京都 世田谷区    1979
6   東京都 世田谷区           池尻南公園       1  東京都 世田谷区    1997
7   東京都 世田谷区       池尻三丁目公園       1  東京都 世田谷区    1981
8   東京都 世田谷区             石仏公園       1  東京都 世田谷区    1960
9   東京都 世田谷区     かえるひろば公園       1  東京都 世田谷区    1995
10  東京都 世田谷区   かどっこひろば公園       1  東京都 世田谷区    1995
   P13_008 P13_009 P13_010                  geometry emoji
1   413573       2    <NA> POINT (139.6602 35.62421)     🌳
2    80304       2    <NA> POINT (139.6124 35.66161)     🌳
3   391777       2    <NA> POINT (139.6216 35.62915)     🌳
4    88694       2    <NA> POINT (139.5989 35.65401)     🌳
5      267       0    <NA> POINT (139.6772 35.65501)     🌳
6      760       0    <NA>  POINT (139.681 35.64904)     🌳
7     4161       0    <NA> POINT (139.6788 35.64972)     🌳
8     1960       0    <NA> POINT (139.6315 35.65005)     🌳
9       70       0    <NA>  POINT (139.672 35.64715)     🌳
10      46       0    <NA>   POINT (139.671 35.6456)     🌳

tmapで描画

あとはインタラクティブモードのtmapで描画すれば完了。
ポイントはtm_dotsalphaを0にして、tm_textemojiをラベルとして描画するところ。厳密にはシンボルはドットのままで絵文字が上書きされているだけだが、ほぼ絵文字がシンボルであるかのように操作できる。

tmap_mode("view")
tm <- tm_shape(park.setagaya.emoji) + tm_dots(alpha = 0) + tm_text("emoji", size = 2)
tm

これで最初に上げたような地図が作成できる。

tmapの汎用性が少し上がるかも

参考にしたサイト

Package ‘tmap’
R tmap, legend formatting - display single value in the first legend key

Unicode: Emoji, accents, and international text

1
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?