cucumber flesh

Rを中心としたデータ分析・統計解析らへんの話題をしていくだけ

タイル形式にデータを並べて表示するtabularmapsパッケージがCRANに登録されました

新しいパッケージをCRANに登録しました。tabularmapsパッケージです。このRパッケージは以前ブログ記事にも書いた、 カラム地図を作成するためのものです。カラム地図は、行政区などの配置を表状に敷き詰めて表示することで、それぞれの位置関係をわかりやすく伝えられる利点のある可視化方法の一つです。

uribo.hatenablog.com

主要な機能は前回の記事と変わっていませんが、細かな挙動が変わったので改めて使い方を紹介します。

まずはパッケージをCRANからインストール。開発版を利用する方はGitHub経由でインストールしてください。

# CRAN版
install.packages("tabularmaps")

# 開発版
if (!requireNamespace("remotes"))
  install.packages("remotes")
remotes::install_github("uribo/tabularmaps")

tabularmapsの可視化はggplot2をベースにしているので一緒に読み込んでおくことを推奨します。

library(ggplot2)
library(tabularmaps)

tabularmapsでは任意のデータを利用可能です。また、サンプルとしていくつかのデータが備わっています。ここでは日本の都道府県の位置関係を簡略化したデータを例にしてパッケージの使い方を見ていきましょう。

カラム地図を作成する関数はtabularmaps()です。この関数の引数に対象のデータ、項目を配置させる位置を記録したx、y座標の値が含まれる変数名を指定します。加えて、項目の識別子となる変数をgroup、表示するラベルの変数名をlabelの引数にそれぞれ与えます。ここで、塗り分けの変数が存在する場合にはfill引数にその値を指定してください。

p <- 
  tabularmap(data = jpn77,
           x = x,
           y = y,
           group = jis_code,
           label = prefecture_kanji,
           fill = region_kanji,
           # 図中のlabel文字列(prefecture_kanji)の日本語表示のためのフォント指定
           family = "IPAexGothic")
p

f:id:u_ribo:20200812074924p:plain

上記の例がシンプルなカラム地図の作成方法になります。ここからアレンジしてみましょう。先ほどのコードの実行結果を保存したpオブジェクトに対して2つの関数を追加します。

p +
  scale_fill_jpregion(lang = "jp") +
  theme_tabularmap(base_family = "IPAexGothic")

f:id:u_ribo:20200812074936p:plain

scale_fill_jpregion()は日本の地方名を凡例にする際の専用の関数です。これは元々のカラム地図で使われている色を簡単に各地方に割り当てることができる関数です。ラベルが日本語・英語の場合に対応できるよう、引数langを設定します。もう一つの関数はtheme_tabularmap()です。これはggplot2::theme_minimal()の簡単なラッパです。カラム地図では特に軸ラベルなどの表記が不要なため、そうした要素を非表示にするggplot2のテーマを設定します。

以上の例では組み込みのデータセットを使いましたが、tabularmapsでは任意のデータを使ってカラム地図を作成できます。その際、各要素を配置する座標(x,y)、ラベルなどを用意してください。

タイルの角を丸くするオプション

今回のCRAN登録にあたって、各要素、つまりタイルの輪郭に対する調整を行うオプションを追加しました。カラム地図はタイルを敷き詰めたように表示するのがオリジナルですが、これを丸くして表示するオプションです。

このオプションは引数.radius_sizeで調整します。デフォルトでは2が与えられますが、この数値を大きくるするとタイルの角が丸くなります。

tabularmap(tky23,
           x,
           y,
           group = ward,
           fill = ward,
           label = ward_kanji,
           family = "IPAexGothic",
           .radius_size = 30) +
  theme_tabularmap(base_family = "IPAexGothic") +
  guides(fill = FALSE)

f:id:u_ribo:20200812074957p:plain

画面右側の図が.radius_sizeを変更したものです。同じ形で規則的に並んでいるのでカラム地図と同じような効果があると思います。

geom_tabularmps?

本当は他のggplot2関連パッケージのようにgeom_*()として関数を実装したかったのですが、今回は能力不足で至りませんでした。改善したいです。

というわけで、まだ出来たばかりでアラの多いtabularmapsパッケージですが、ぜひ使ってみてください(おかしな点があればissue報告いただけますと幸いです)。

github.com

Enjoy!