レイヤーでプロットを組み立てる
tmap() について少し分かってきたところで、前に作成した人口のプロットをレイヤーで積み上げ、いくつか手直しして見やすくしましょう。まず、使用するデータを指定する tm_shape() レイヤーを作り、その上に tm_fill() レイヤーを追加して、多角形を変数 population で着色します。
tm_shape(countries_spdf) +
tm_fill(col = "population")
出来上がったプロットの一番の問題は、色のスケールがあまり情報量を持っていないことです。最初の色(ごく薄い黄色)が人口2億未満のすべての国を覆ってしまいます。色のスケールは tm_fill() レイヤーに紐づいているので、スケールの調整はこの呼び出し内で行います。色については第3章で詳しく学びますが、ここでは style 引数が区切り(階級)の決め方を制御することだけ覚えておいてください。
また、国境線も必要です。これには tm_borders() レイヤーを追加できますが、視覚的に強すぎないようにしましょう。ブラウン系にすると良さそうです。
空間オブジェクトを使う利点は、作るプロットの種類を切り替えるときに特に実感できます。人口に応じてバブルの大きさが変わるバブルプロットも試してみましょう。ggplot2 を使う場合はデータの大がかりな整形が必要になりますが、tmap ならレイヤーを差し替えるだけです。
この演習はコースの一部です
R で地理空間データを可視化する
演習の手順
tm_fill()にstyle = "quantile"を追加します。これは各区間に含まれる観測数が等しくなるように、色スケールの区切りを選びます。- 同じプロットに、
col = "burlywood4"を指定したtm_borders()レイヤーを追加します。 - 最初のプロットと同様の新しいプロットを作り、
tm_fill()の代わりにtm_bubbles()レイヤーを追加し、sizeを population にマッピングします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
library(sp)
library(tmap)
# Add style argument to the tm_fill() call
tm_shape(countries_spdf) +
tm_fill(col = "population") +
# Add a tm_borders() layer
# New plot, with tm_bubbles() instead of tm_fill()