区間尺度の例
18〜24歳の人口割合を可視化したプロットに戻りましょう。
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = vir) +
tm_legend(position = c("right", "bottom"))
このプロットには問題がありました。多くの格子セルの割合が最も低い色レベルに入ってしまい、細部が見えにくくなっていたのです。この問題を解決する1つの方法は、変数の範囲を等幅ビンに分けるのではなく、より意味のあるカテゴリに分けることです。
まずは tmap のデフォルトと同じ、"pretty" ブレークで切った5カテゴリを再現してみましょう。そのうえで、変数を区間に分割する他の方法もいくつか試します。classIntervals() 関数を直接使うと、ブレークがどうなるかをすばやく確認できますが、最適かどうかを判断するいちばんの方法は実際にプロットしてみることです。
(補足)もう1つの解決策は、変数を変換して、変換後のスケールで等幅ビンがより有用になるようにすることです。
この演習はコースの一部です
R で地理空間データを可視化する
演習の手順
values(prop_by_age[["age_18_24"]])に対してclassIntervals()を呼び出し、n = 5とstyle = "pretty"を指定します。問題が見えますか? 130,770 個のグリッドセルが最初のビンに入ってしまいます。- 次に、上と同様に
classIntervals()を呼び出しますが、style = "quantile"を指定します。 - プロットの
tm_raster()レイヤーにnとstyleを渡して、等量ビンを使ってみましょう。 values(prop_by_age[["age_18_24"]])のヒストグラムを作成します。ブレークはどこに置きますか?tm_raster()でbreaks = c(0.025, 0.05, 0.1, 0.2, 0.25, 0.3, 1)を指定して、独自のブレークを作成します。- 最後のプロットを
tmap_save()を使って leaflet プロットとして保存し、filenameを"prop_18-24.html"にします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
mag <- viridisLite::magma(7)
library(classInt)
# Create 5 "pretty" breaks with classIntervals()
# Create 5 "quantile" breaks with classIntervals()
# Use 5 "quantile" breaks in tm_raster()
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = mag) +
tm_legend(position = c("right", "bottom"))
# Create histogram of proportions
# Use fixed breaks in tm_raster()
tm_shape(prop_by_age) +
tm_raster("age_18_24", palette = mag,
style = "fixed")
# Save your plot to "prop_18-24.html"