@@ -35,19 +35,19 @@ library(leaflet) # 動的地図
3535library(ggplot2) # tidyverse データ可視化パッケージ
3636```
3737
38- - Section \@ ref(spatial-ras) については、以下の二つのデータセットを読み込む必要がある 。
38+ - Section \@ ref(spatial-ras) で紹介した二つのデータセットを読み込む必要がある 。
3939
4040``` {r 04-spatial-operations-1-1}
4141nz_elev = rast(system.file("raster/nz_elev.tif", package = "spDataLarge"))
4242```
4343
4444## イントロダクション {#introduction-09}
4545
46- 地理学的研究の満足度と重要性は、その結果を伝えることにある 。
47- 地図作成は 、コミュニケーションと細部への注意、そして創造力を必要とする古来の技術である。\index{ちずせいさく@地図作成}
46+ 地理学的研究は、その結果を伝えることで満足度と重要性が高まる 。
47+ 地図作成あるいは地図学は 、コミュニケーションと細部への注意、そして創造力を必要とする古来の技術である。\index{ちずせいさく@地図作成}
4848R における静的地図は、Section \@ ref(basic-map) で見たように、` plot() ` 関数を使えば簡単にできる。
4949R の基本メソッドを使って高度な地図を作成することも可能ではある [ @murrell_r_2016] 。
50- しかし、この章の焦点は、専用の地図作成パッケージを使った地図作成にある 。
50+ しかし、この章の焦点は、地図作成専用のパッケージを使った地図作成にある 。
5151新しいスキルを身につけるには、1 つの分野の知識を深めてから手を広げていくことが大切である。
5252地図の作成も例外ではない。そのため、この章では多くのパッケージを表面的にではなく、1 つのパッケージ (** tmap** ) を深く掘り下げて説明する。
5353
@@ -132,7 +132,7 @@ source("https://github.com/geocompx/geocompr/raw/main/code/09-tmshape.R", print.
132132- ` tm_raster() ` : ラスタデータの色付きのセル (3レイヤのあるラスタには ` tm_rgb() ` もある)
133133- ` tm_text() ` : (複合) 点、(複合) 線、(複合) ポリゴンのテキスト
134134
135- Figure \@ ref(fig: tmshape ) の右側のパネルでは、塗りつぶし (fill) レイヤ<u >の上に</u >境界 (borders) を重ねた結果を示す 。
135+ Figure \@ ref(fig: tmshape ) の右側のパネルでは、塗りつぶし (fill) レイヤ<u >の上に</u >境界 (borders) を重ねた結果を示している 。
136136
137137``` {block2 qtm, type = 'rmdnote'}
138138`qtm()` (**q**uick **t**hematic **m**aps) は、主題図を簡単に作成する関数である。
@@ -145,7 +145,7 @@ Figure \@ref(fig:tmshape) の右側のパネルでは、塗りつぶし (fill)
145145### 地図オブジェクト {#map-obj}
146146
147147** tmap** の便利な点は、地図を表す<u >オブジェクト</u >を格納できることである。
148- 以下のコードは、Figure \@ ref(fig: tmshape ) の最後のプロットをクラス ` tmap ` のオブジェクトとして保存することでこれを示している (` tm_fill() + tm_borders() ` を単一の関数に凝縮した ` tm_polygons() ` の使用に注意してみよう )。
148+ 以下のコードは、Figure \@ ref(fig: tmshape ) の最後のプロットをクラス ` tmap ` のオブジェクトとして保存することでこれを示している (` tm_polygons() ` 関数は、 ` tm_fill() + tm_borders() ` を単一の関数に凝縮したもの )。
149149
150150``` {r 08-mapping-4}
151151map_nz = tm_shape(nz) + tm_polygons()
@@ -201,11 +201,11 @@ tmap_arrange(map_nz1, map_nz2, map_nz3)
201201\index{ちずさくせい@地図作成!かしかのへんすう@可視化の変数}
202202前節のプロットは、** tmap** のデフォルトの美観セッティングを示してきた。
203203` tm_fill() ` と ` tm_symbols() ` のレイヤには灰色の影を使用し、` tm_lines() ` で作成した線を表現するために、連続した黒い線を使用する。
204- もちろん、これらのデフォルト値やその他の美観はオーバーライドすることができる 。
205- このセクションの目的は、その方法を示すことである 。
204+ もちろん、これらのデフォルト値やその他の美観は上書きすることができる 。
205+ このセクションでは、その方法を示していく 。
206206
207207地図の美観には、大きく分けて「データによって変化するもの」と「一定であるもの」がある。
208- ヘルパー関数 ` aes() ` を使って変数の美観を表現する ** ggplot2 ** とは異なり、 ** tmap** はレイヤの種別に応じた美観の引数を直接受け付ける。
208+ ** ggplot2 ** ではヘルパー関数 ` aes() ` を使って変数の美観を表現するが、 ** tmap** はレイヤの種別に応じた美観の引数を直接受け付ける。
209209
210210- ` fill ` : ポリゴンの塗りつぶし色
211211- ` col ` : ポリゴン境界線、線、点、ラスタの色
@@ -233,16 +233,16 @@ tmap_arrange(ma1, ma2, ma3, ma4, ma5, ma6)
233233```
234234
235235Base R のプロットと同様に、美観を定義する引数もまた、様々な値を受け取ることができる。
236- 以下の Base R コード (Figure \@ ref(fig: tmcol ) の左のパネルを生成) とは異なり、** tmap** 美観引数は数値ベクタを受け付けない 。
236+ ただし、 Base R コード (Figure \@ ref(fig: tmcol ) の左のパネルを生成) とは異なり、** tmap** 美観引数は数値ベクトルを受け付けない 。
237237
238238``` {r 08-mapping-9, eval=FALSE}
239239plot(st_geometry(nz), col = nz$Land_area) # 成功
240240tm_shape(nz) + tm_fill(fill = nz$Land_area) # 失敗
241241#> Error: palette should be a character value
242242```
243243
244- 代わりに、 ` fill ` (および、ラインレイヤのための ` lwd ` 、ポイントレイヤのための ` size ` など、異なることがある他の美観 ) は、プロットされるジオメトリに関連する属性を指定する文字列を必要とする 。
245- したがって、次のように望ましい結果を得ることができる (Figure \@ ref(fig: tmcol ) 右図)。
244+ ` fill ` (線レイヤの場合は ` lwd ` 、点レイヤの場合は ` size ` など) は、プロットされるジオメトリに関連する属性を、数値ベクトルではなく文字列を渡す必要がある 。
245+ 次のようにすると望ましい結果を得ることができる (Figure \@ ref(fig: tmcol ) 右図)。
246246
247247``` {r 08-mapping-10, fig.show='hide', message=FALSE}
248248tm_shape(nz) + tm_fill(fill = "Land_area")
@@ -256,7 +256,7 @@ tm_shape(nz) + tm_fill(fill = "Land_area")
256256視覚化の変数には、` .scale ` 、` .legend ` 、` .free ` という文字列を後ろにつけた 3 つの追加引数がある。
257257例えば、` tm_fill() ` には ` fill ` 、` fill.scale ` 、` fill.legend ` 、` fill.free ` といった引数がある。
258258` .scale ` 引数は、地図と凡例での表示方法を指定し (Section \@ ref(scales))、` .legend ` はタイトル、方向、位置を指定する (Section \@ ref(legends))。
259- ` .free ` 引数は、多くのファセットをもつ地図で、ファセットによって縮尺や凡例が変わる場合などに使用する 。
259+ ` .free ` 引数は、多くのファセットをもつ地図で、ファセットによってスケールや凡例が変わる場合などに使用する 。
260260
261261### スケール (scale) {#scales}
262262
@@ -295,7 +295,7 @@ source("https://github.com/geocompx/geocompr/raw/main/code/09-tmpal.R", print.ev
295295```
296296
297297\index{tmap (package)!break}
298- ` tm_scale_ ` から始まる関数ファミリーを使うことで縮尺をカスタマイズすることもできる 。
298+ ` tm_scale_ ` から始まる関数ファミリーでスケールをカスタマイズすることもできる 。
299299最も重要なものは、` tm_scale_intervals() ` 、` tm_scale_continuous() ` 、` tm_scale_categorical() ` である。
300300
301301``` {r}
@@ -364,7 +364,7 @@ tmap_arrange(m_cont1, m_cat1)
364364```
365365
366366\index{いろぱれっと@色パレット}
367- 色パレット\index{ちずさくせい@地図作成!いろぱれっと@色パレット}は大きく分けて、カテゴリ、連続、発散の三種類ある (Figure \@ ref(fig: colpal ))。目的に応じてこの三種類を使い分ける。^[
367+ 色パレット\index{ちずさくせい@地図作成!いろぱれっと@色パレット}は大きく分けて、カテゴリ、連続、発散 (分岐) の三種類がある (Figure \@ ref(fig: colpal ))。目的に応じてこの三種類を使い分ける。^[
368368第四の色パレットとして二変量 (bivariate) がある。
369369これは、地図上の二つの変数の関係を代表する。
370370]
@@ -422,7 +422,7 @@ many_palette_plotter(c(all_default_pals$div, all_default_pals$seq, all_default_p
422422また、情報を効果的に伝えるために、色パレットは分かりやすいものが望ましい。
423423どの数値が低く、どの数値が高いかが明確で、色も徐々に変化することが望ましい。
424424第二に、色の変化は、多くの人がアクセスできるものでなければならない。
425- そのため、色弱者用のパレットをできるだけ多く使うことが大切である 。^[ ` cols4all::c4a_gui() ` の "Color Blind Friendliness" パネルの "Color vision" オプションを参照。]
425+ そのため、可能な限り色弱者用のパレットを使うことが大切である 。^[ ` cols4all::c4a_gui() ` の "Color Blind Friendliness" パネルの "Color vision" オプションを参照。]
426426
427427### 凡例 {#legends}
428428
@@ -505,12 +505,12 @@ map_nz + tm_layout(frame = FALSE)
505505source("code/09-layout1.R", print.eval = TRUE)
506506```
507507
508- ` tm_layout() ` の他の引数は、地図が配置されるキャンバスとの関係で、地図の多くの側面を制御する 。
508+ ` tm_layout() ` の引数は、キャンバス内で地図がどのように配置されるかを制御する 。
509509ここでは、便利なレイアウト設定をご紹介する (一部、Figure \@ ref(fig: layout2 ))。
510510
511511- ` inner.margin ` と ` outer.margin ` はマージンを設定
512- - ` fontface ` で制御されるフォント設定と ` fontfamily `
513- - 凡例設定には 、` legend.show ` (凡例を表示すかどうか)、` legend.only ` (地図を省略するか)、` legend.outside ` (凡例を地図の外に出すか) などの二値オプションや、 ` legend.position ` ですべて設定
512+ - ` fontface ` で制御されるフォント設定と ` fontfamily ` (訳註: macOS では文字化けを fontfamily = "HiraginoSans-W3" とすることで回避できる)
513+ - 凡例設定は 、` legend.show ` (凡例を表示すかどうか)、` legend.only ` (地図を省略するか)、` legend.outside ` (凡例を地図の外に出すか) などの二値オプションで設定するか、あるいは ` legend.position ` ですべて設定
514514- 図郭の幅 (` frame.lwd ` ) と二重線 (` frame.double.line ` ) を許可するオプション
515515- ` sepia.intensity ` (地図のセピア度合) と ` saturation ` (色・グレースケール) を制御する色設定
516516
@@ -522,9 +522,9 @@ source("code/09-layout2.R", print.eval = TRUE)
522522
523523\index{ちずさくせい@地図作成!ふぁせっとちず@ファセット地図}
524524\index{tmap (package)!ふぁせっとちず@ファセット地図}
525- ファセット地図は「スモール・マルチプル」とも呼ばれ、多数の地図を横に並べ、時には縦に重ねて構成する [ @meulemans_small_2017] 。
525+ ファセット地図は「スモール・マルチプル」とも呼ばれ、多数の地図を横または縦に重ねて構成する [ @meulemans_small_2017] 。
526526ファセットは、空間的な関係が時間などの別の変数に対してどのように変化するかを視覚化することができる。
527- 例えば、集落の人口の変化を、各パネルが特定の時点の人口を表すファセット地図で表現することができる 。
527+ 例えば、集落の人口の変化を表現する場合、特定の時点の人口のパネルを並べたファセット地図で表現することができる 。
528528時間の次元は、色などの別の<u >視覚化に関する変数</u >で表現できる。
529529しかし、これは複数のポイントが重なるため、地図が乱雑になる危険性がある (都市は移動しない!)。
530530
@@ -727,9 +727,9 @@ urb_anim = tm_shape(world) + tm_polygons() +
727727tmap_animation(urb_anim, filename = "urb_anim.gif", delay = 25)
728728```
729729
730- 地図アニメーションの威力を示すもう一つの例が、Figure \@ ref(fig: animus ) にある 。
730+ 地図アニメーションの威力を示すもう一つの例が、Figure \@ ref(fig: animus ) である 。
731731これは、アメリカにおける州の発達を示すもので、最初は東部で形成され、その後徐々に西部へ、最後は内陸部へと発展していった。
732- この地図を再現するためのコードは、本書の GitHub リポジトリのスクリプト ` code/09-usboundaries.R ` に記載されている 。
732+ この地図を再現するためのコードは、本書の GitHub リポジトリのスクリプト ` code/09-usboundaries.R ` にある 。
733733
734734``` {r 08-mapping-24, echo=FALSE, eval=FALSE}
735735source("https://github.com/geocompx/geocompr/raw/main/code/09-usboundaries.R")
@@ -826,7 +826,7 @@ knitr::include_graphics("images/mapview.png")
826826データセットを複数のレイヤに「バースト」する機能や、` + ` の後に地理的オブジェクトの名前を付けて複数のレイヤを追加する機能など、高度な制御を提供する。
827827さらに、属性の自動的な色付けも可能である (引数 ` zcol ` )。
828828要するに、データドリブンの ** leaflet** API\index{API} と考えることができる (** leaflet** については後述する)。
829- ** mapview** は常に空間オブジェクト (` sf ` と ` SpatRaster ` ) を最初の引数として期待することから、パイプ式の末尾でうまく機能する 。
829+ ** mapview** は常に空間オブジェクト (` sf ` と ` SpatRaster ` ) を最初の引数として期待することから、パイプで繋げてもうまく機能する 。
830830次の例では、** sf** を使って直線とポリゴンを交差させ、** mapview** (Figure \@ ref(fig: mapview2 )) で可視化する場合を考えてみよう。
831831
832832``` {r 08-mapping-30, eval=FALSE}
@@ -1131,16 +1131,16 @@ map_gpkg_df$Title[map_gpkg_df$Package == "leaflet"] =
11311131knitr::kable(map_gpkg_df,
11321132 caption = "汎用の地図作成パッケージ",
11331133 caption.short = "Selected general-purpose mapping packages.",
1134- booktabs = TRUE) |>
1135- kableExtra::column_spec(2, width = "9cm")
1134+ booktabs = TRUE) # |>
1135+ # kableExtra::column_spec(2, width = "9cm")
11361136```
11371137
11381138Table \@ ref(tab: map-gpkg ) は、さまざまな地図作成パッケージが利用可能であることを示しており、この表に記載されていないものも多数ある。
11391139特に注目すべきは ** mapsf** で、コロプレス図、比例シンボル地図、フロー地図など、さまざまな地理的視覚化を生成することができる。
11401140これらは、[ ` mapsf ` ] ( https://cran.r-project.org/package=mapsf/vignettes/mapsf.html ) \index{mapsf (package)} vignette に記載されている。
11411141
11421142Table \@ ref(tab: map-spkg ) に示すように、いくつかのパッケージは、特定の地図タイプに焦点を当てている。
1143- 地理空間を歪めたカルトグラムの作成、ラインマップの作成、ポリゴンの正六角形グリッドへの変換、複雑なデータを地理的トポロジーを表すグリッド上に可視化し、3次元表現をするパッケージである 。
1143+ 地理空間を歪めたカルトグラムの作成、ラインマップの作成、ポリゴンの正六角形グリッドへの変換、複雑なデータを地理的トポロジーを表すグリッド上に可視化し、3 次元表現をするパッケージである 。
11441144
11451145``` {r map-spkg, echo=FALSE, message=FALSE}
11461146
0 commit comments