Я делаю карту, используя ggplot, и я хочу иметь возможность центрировать карту вокруг Тихого океана, рисуя точки на карте.
Оказывается, я могу сделать сдвиг карты, используя опцию wrap maps :: map.Однако я не уверен, как именно сместить точки, чтобы они соответствовали моей новой смещенной карте.Я нашел, как это сделать, когда я воссоздаю карту по центру Тихого океана с переносом (0, 360), но я не уверен, как это сделать для произвольных единиц сдвига.Я уверен, что это довольно просто, но я не могу понять это.Любые идеи?
library(maps)
library(tidyverse)
# Pacific centered map
shift_value_1 <- 0
shift_value_2 <- 360
# Regular map, how about new values of shift_value_1 and shift_value_2? (e.g. -20, 325)
shift_value_1 <- -180
shift_value_2 <- 180
map_world_df <- map_data('world', wrap=c(shift_value_1, shift_value_2)) %>%
dplyr::filter(region != "Antarctica")
country_shapes <- geom_polygon(data = map_world_df,
aes(x=long, y = lat, group = group),
fill = "gainsboro",
color = "gainsboro",
size = 0.15)
nodes <- data.frame(names = c("A", "B", "C", "D"),
lat = c(64.220241, 10.278386, 64.710869, 19.432564),
lon = c(135.75572, 34.33927, -151.20003, -99.13323))
nodes$lon[nodes$lon <0] <- nodes$lon[nodes$lon <0] + (shift_value_1 + shift_value_2)
ggplot() +
country_shapes +
geom_point(data = nodes, aes(x=lon, y = lat))
Я хотел бы иметь возможность выбрать произвольные диапазоны долготы и соответственно сместить точки, вместо этого яполучить неправильно расставленные очки.