ポリゴン内にテキスト(ラベル)を表示する
ポリゴン内に各ポリゴンの属性を表示したい。 何回か調べているので、メモとして残す。
# using packages library(ggplot2) library(kokudosuuchi) library(sf) library(sp) options(stringsAsFactors = F)
# preparation url <- kokudosuuchi::getKSJURL("N03", prefCode = c(27)) url <- url %>% arrange(desc(year)) %>% .[1, ] N03 <- kokudosuuchi::getKSJData(url$zipFileUrl) N03 <- N03[[1]] proj4string(N03) <- CRS("+init=epsg:4612")
# sp class plot(N03, axes=T) text(getSpPPolygonsLabptSlots(N03), labels = as.character(N03$市区町村名), cex=0.4)
# sf class N03_sf <- st_as_sf(N03) N03_sf %>% st_geometry() %>% plot() text(st_coordinates(N03_sf %>% st_centroid), labels=N03$市区町村名, cex = 0.3)
# using ggplot2 N03_sf %>% mutate(lon = st_centroid(.) %>% st_coordinates() %>% .[, 1], lat = st_centroid(.) %>% st_coordinates() %>% .[, 2]) %>% ggplot() + geom_sf(aes(fill = 市区町村名)) + ggrepel::geom_text_repel(aes(x=lon, y=lat, label=市区町村名), size=2)
こちらはstackoverflowにあった回答例からのコピペ。 ggplot2パッケージでもっと簡単にテキストを作図したいが、わからず。