この vignette は、 JSS paper
で詳細に説明されている tmap 1.11-2 と比較して、tmap 2.x/3.x
の主な変更点を要約している。この論文のバージョン2.x/3.xのコードは、以下の場所にある。
vignette("tmap-JSS-code")
にある。
初めてtmapを使う人のために vignette("tmap-getstarted")
を参照。
バージョン 2.0 以降では、関数 qtm
を除き、すべての tmap
関数に tm_
または tmap_
という接頭辞が付く。
tmap version 1.x と同様、レイヤーの関数は tm_
で始まる。
tmap 1.x では、animation_tmap
と tmap_arrange
のように、他の関数の名前に一貫性がなかった。 tmap 2.x/3.x
では、これらの関数の先頭に tmap_
を付けている。
例えば animation_tmap
は tmap_animation
に改名された。
tmap 1.xでは、ベクタデータを表現するために
sp
、ラスタデータを表現するために raster
。 tmap
2.xでは、ベクタデータを表現するために
sf
、ラスタデータを表現するために raster
。 tmap
3.xでは、ベクタデータを表現するために
sf
、ラスタデータを表現するために stars
。
sf
(simple features)
オブジェクトは、 sp
オブジェクトよりもシンプルな構造を持っている。
sf
オブジェクトは、対応する行のジオメトリを含む特別なジオメトリ列を持つ
data.frame
にほかならない。
このようなジオメトリは、空間点、線、多角形のいずれか、またはこれらの任意の組み合わせで「geometrycollection」(参照
vignette("sf1")
)。
tm_polygons
などのレイヤ機能は、描画することになっているもの(この場合はポリゴン)だけを描画する。
新しく追加されたレイヤ機能 tm_sf
は、すべてのジオメトリを描画する。
最後に tmap
のすべてのデータオブジェクト(
land
を除く)は sf
のオブジェクトに変換されている。 オブジェクト land
は
stars
オブジェクトに変換された。
レイヤー機能を追加し、タイルのレイヤーを容易にした。
バージョン1.xでは、すでにベースマップを追加することが可能であった。
バージョン 2.0 では、明示的なレイヤ関数 tm_basemap
と
tm_tiles
によって、これを容易にしている。
前者はベースマップタイルを、後者はオーバーレイタイルを作成する。 違いは
tm_basemap
レイヤーは常に一番下に描画されるのに対し、(オーバーレイ)
tm_tiles
レイヤーの描画順はプロットコールから導かれることである。
オーバーレイレイヤーは半透明でないと意味がない。
ヒント: https://leaflet-extras.github.io/leaflet-providers/preview/
のすべてのタイルマップが使用できる。
これらの地図の名前は、リストオブジェクト leaflet::providers
でも確認することができる。
data(World, metro)
tmap_mode("view")
tm_basemap(leaflet::providers$CartoDB.PositronNoLabels, group = "CartoDB basemap") +
tm_shape(World) +
tm_polygons("HPI", group = "Countries") +
tm_tiles(leaflet::providers$CartoDB.PositronOnlyLabels, group = "CartoDB labels") +
tm_shape(metro) +
tm_dots(col = "red", group = "Metropolitan areas")
tmapには多くのオプションがある。
バージョン 1.x では、デフォルト値は tm_layout
と
tm_view
に格納されていた。
これらのオプションを変更するために、tm_style_gray
や
tm_format_World
のようなラッパー関数が使用されている。
バージョン2.0では、オプションはグローバルオプションと同様の方法で保存される。
tmapオプションのリストを取得し、関数 tmap_options
を用いてオプションを設定することができる。
その動作は基本関数 options
に似ている。
スタイルとは、マップを特定の方法でスタイル設定するために使用されるオプションの設定である。
tmap_style
と設定すると、現在のオプションは新しいスタイルに従って上書きされる。
その変化は tmap_options_diff
で確認できる。tmap_options_reset
でリセットすることができる。
data(World)
qtm(World, fill = "life_exp")
tmap_style("classic")
## tmap style set to "classic"
## other available styles are: "white", "gray", "natural", "cobalt", "col_blind", "albatross", "beaver", "bw", "watercolor"
qtm(World, fill = "life_exp")
tmap_options_diff()
## current tmap options (style "classic") that are different from default tmap options (style "white"):
## $sepia.intensity
## [1] 0.7
##
## $frame.double.line
## [1] TRUE
##
## $fontfamily
## [1] "serif"
##
## $compass.type
## [1] "rose"
##
## $basemaps
## [1] "Esri.WorldTopoMap"
##
## $basemaps.alpha
## [1] 0.5
tmap_options_reset()
## tmap options successfully reset
tmap に含まれるスタイルは以下の通りである。"white"
,
"gray"
, "natural"
, "cobalt"
,
"col_blind"
, "albatross"
,
"beaver"
, "bw"
, "classic"
.
新しいスタイルは、それぞれ tmap_style_save
と
tmap_style_load
で保存、読み込みが可能である。
バージョン1.xでは、tmap
は、tm_format_World
のような、いくつかの定義済みフォーマット関数を含んでいた。
バージョン2.0では、これらは一般的な関数 tm_format
に置き換えられることとした。
この機能により、利用可能なフォーマットの検索や、特定のフォーマットの設定を行うことができる。
tm_format_add
関数により、新しいフォーマットを作成することができる。
tmap_format()
## available formats are: "World", "World_wide", "NLD", "NLD_wide"
<- tmap_format("World")
panorama $asp <- 6
panoramatmap_format_add(panorama, name = "panorama")
## format panorama succesfully added. Use this format with tm_format("panorama")
tmap_format()
## available formats are: "World", "World_wide", "NLD", "NLD_wide", "panorama"
スタイルと異なり、フォーマットはグローバルに設定することができない。 その代わり、各プロットで指定する必要がある。
tm_shape(World) + tm_polygons("HPI") + tm_format("panorama")
# or: qtm(World, fill = "HPI", format = "panorama")
Viridis パレット ( viridis
/ viridisLite
パッケージ) はネイティブでサポートされている。 例
qtm(World, "HPI ", fill.palette =" -plasma")
。
カラーブルワーのパレット名と同様に、マイナス記号を付けるとパレットが反転することに注意。
カラーブルワーと viridis
パレットをインタラクティブに探索するには、tmaptools::palette_explorer()
を参照。
カラーパレットマッピングを定義する引数がより直感的になった。
新たに追加されたレイヤ機能引数 midpoint
と
stretch.palette
は、auto.palette.mapping
を置き換える。
stretch.palette
は、利用可能な色よりも多くのカテゴリーがある場合に、パレットを引き伸ばすかどうかを決定する。
FALSE
に設定すると、パレットが繰り返される。midpoint
は、発散カラーパレットの中間色(ニュートラル)にマッピングされるべき値を決定する。"RdBu"
の場合、色は薄い赤 (-5) から白
(0) 、濃い青 (20) までの範囲になる。midpoint
が指定された場合、パレットは発散パレットとみなされ、中間色は中間色と解釈される。引数 filter が tm_shape
に追加された。
搭載されるフィーチャは通常通り可視化される。
除外されたフィーチャも可視化されるが、カラーマッピングはされていない。
その代わり、レイヤ関数の新しい引数である colorNULL
で色付けされる。 colorNA
との違いに注意。これは、欠損データのあるフィーチャを着色するために使用される。
このフィルターの可能性を示すために、次のコードはヨーロッパの国々だけを色付けした地図を作成する。
tm_shape(World, filter = World$continent=="Europe") +
tm_polygons("HPI", id = "name")
ヨーロッパ以外の国は、colorNULL
、デフォルトでは
grey95
で色分けされている。 tm_polygons
などのレイヤ機能、および tmap_options
で調整することができる。
また、データには欠損値(コソボとモルドバ)があり、colorNA
(デフォルトでは grey85
)で色付けされている。