tmapとggplot2の出力結果の比較

空間データのプロット

sfやspクラスオブジェクトのデータをプロットする方法について tmapggplot2パッケージによる出力を比較してみる。

library(tmap)
library(sf)
library(mapview)
library(ggplot2)

spクラスオブジェクトとsfクラスオブジェクトの2つを準備する。

nc <- st_read(system.file("shape/nc.shp", package="sf"), quiet = T)
data("atlStorms2005")

class(nc)
[1] "sf"         "data.frame"
class(atlStorms2005)
[1] "SpatialLinesDataFrame"
attr(,"package")
[1] "sp"

tmapを利用して書くと

tm_shape(nc) + tm_polygons(col = "AREA")

f:id:jerrarrdan:20170603015115p:plain

tm_shape(atlStorms2005) + tm_lines(col = "MaxWind") +
  tm_layout(frame = F)

f:id:jerrarrdan:20170603015130p:plain

ggplot2を利用して書くと

ggplot() +
  geom_sf(data = nc, aes(fill = AREA))

f:id:jerrarrdan:20170603015142p:plain

ggplot() +
  geom_sf(data = st_as_sf(atlStorms2005), aes(color = MaxWind))

f:id:jerrarrdan:20170603015153p:plain

tmapパッケージではsp, sfオブジェクトともに区別なく書くことができるが、 ggplot2ではsfオブジェクトのみ対応しており、変換が必要になる。

ggplot2パッケージのパレットが見づらいと感じるので、 デフォルトのパレットを変更されることを期待している。