質的データの例
最後に、カテゴリ変数の例を見てみましょう。land_cover ラスタには、地表をグリッド状に区分した分類が入っています。まずは次を実行して land_cover を表示してみてください。
land_cover
values は数値ですが、これらの数値をカテゴリに対応づける attributes があることに気づくはずです(ちょうど factor の仕組みと同じです)。
カテゴリ変数の配色は、可視化の目的に大きく左右されます。各カテゴリを同程度の視覚的重みで見せたい、つまり特定のカテゴリだけが目立ちすぎないようにしたい場合は、色相(hue)を変えつつ、彩度(chroma:鮮やかさの尺度)と明度(lightness)をそろえる方法があります(ggplot2 の離散スケールの既定で、hcl() 関数で生成できます)。
RColorBrewer の質的パレットは、色の識別のしやすさと視覚的重みの均等さのバランスが取れています。"paired" と "accent" のスキームはこれから外れており、それぞれ、明度が対になった色を提供するもの、特定のカテゴリを強調するためにやや強い色を含むパレットになっています。
このデータでは、森林に緑、水域に青といった直感的な色を選ぶほうが適切かもしれません。どちらの方針でも、新しい配色の設定は対応する tm_*** レイヤーの palette 引数に色のベクトルを渡すだけです。
この演習はコースの一部です
R で地理空間データを可視化する
演習の手順
tm_shape()とtm_raster()を組み合わせてland_coverラスタをプロットします。既定では、tmapはRColorBrewerの質的パレット"Set3"を使います。ggplot2のパレットを模したhcl_colsのコードを確認し、tm_raster()のpalette引数にhcl_colsを渡して、もう一度land_coverラスタをプロットします。levels()をland_coverに対して呼び出し、カテゴリを確認します。- こんどは
intuitive_colsをパレットとして使い、tm_legend()レイヤーをposition = c("left", "bottom")という引数で追加します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
library(raster)
# Plot land_cover
# Palette like the ggplot2 default
hcl_cols <- hcl(h = seq(15, 375, length = 9),
c = 100, l = 65)[-9]
# Use hcl_cols as the palette
# Examine levels of land_cover
# A set of intuitive colors
intuitive_cols <- c(
"darkgreen",
"darkolivegreen4",
"goldenrod2",
"seagreen",
"wheat",
"slategrey",
"white",
"lightskyblue1"
)
# Use intuitive_cols as palette