ggplotバージョンを残します。もっとコードを書く必要があります。しかし、より詳細にマップを操作したい場合は、ぜひ試してみてください。GADMデータを使用してメインマップを描画しました。パッケージgetData()
内のファイルをダウンロードしましたraster
。次に、fortify()
ggplotのデータフレームを生成するために使用しました。その後、メインマップを描きました。scale_x_continuous()
およびを使用してscale_y_continuous()
、マップをクリップできます。このggsn
パッケージでは、矢印とスケールバーを追加できます。必要な場所を指定する必要があることに注意してください。差し込みマップの場合、より小さなデータを使用して状態を描画できます。だから私は使用しましたmap_data("state")
。地図を描いてで包みましたggplotGrob()
。後で差し込みマップを作成するには、grobオブジェクトを作成する必要があります。最後に、annotation_custom()
差し込みマップを使用してメインマップに追加します。
library(raster)
library(ggplot2)
library(ggthemes)
library(ggsn)
mapdata <- getData("GADM", country = "usa", level = 1)
mymap <- fortify(mapdata)
mypoint <- data.frame(long = -121.6945, lat = 39.36708)
g1 <- ggplot() +
geom_blank(data = mymap, aes(x=long, y=lat)) +
geom_map(data = mymap, map = mymap,
aes(group = group, map_id = id),
fill = "#b2b2b2", color = "black", size = 0.3) +
geom_point(data = mypoint, aes(x = long, y = lat),
color = "black", size = 2) +
scale_x_continuous(limits = c(-125, -114), expand = c(0, 0)) +
scale_y_continuous(limits = c(32.2, 42.5), expand = c(0, 0)) +
theme_map() +
scalebar(location = "bottomleft", dist = 200,
dd2km = TRUE, model = 'WGS84',
x.min = -124.5, x.max = -114,
y.min = 33.2, y.max = 42.5) +
north(x.min = -115.5, x.max = -114,
y.min = 40.5, y.max = 41.5,
location = "toprgiht", scale = 0.1)
foo <- map_data("state")
g2 <- ggplotGrob(
ggplot() +
geom_polygon(data = foo,
aes(x = long, y = lat, group = group),
fill = "#b2b2b2", color = "black", size = 0.3) +
geom_point(data = mypoint, aes(x = long, y = lat),
color = "black", size = 2) +
coord_map("polyconic") +
theme_map() +
theme(panel.background = element_rect(fill = NULL))
)
g3 <- g1 +
annotation_custom(grob = g2, xmin = -119, xmax = -114,
ymin = 31.5, ymax = 36)