Я создаю карты с данными мирового масштаба, а затем приближаюсь к определенным регионам. При увеличенном представлении я хотел бы показать, что есть другие точки данных за пределами ограничивающей рамки, путем размещения стрелок, которые указывают от центра поля до точки данных во внешнем мире.
Примечание: Мне не нужно, чтобы это был путь "большого круга", просто векторы XY в проекции Меркатора, потому что я думаю, что это будет полезно и для "нормальных" графиков.
В качестве примера, вот карта мира, показывающая объем данных:
И вот увеличенное изображение, с добавлением пурпурных стрелок, чтобы показать, что я хотел бы сгенерировать.
Ниже приведен код и данные, которые я использую для создания этих двух основных графиков. Мне нужен способ генерации стрелок.
require(ggplot2)
te = structure(list(lat = c(33.7399, 32.8571, 50.2214, 36.96263, 33.5835,
33.54557, 47.76147, 48, 59.40289, 35.93411, 32.87962, 38.3241,
50.03844, 37.44, 50.07774, 50.26668, 36.5944), lng = c(-118.37608,
-117.25746, -5.3865, -122.00809, -117.86159, -117.79805, -124.45055,
-126, -146.35157, -122.931472, -117.25285, -123.07331, -5.26339,
25.4, -5.709894, -3.86828, -121.96201)), .Names = c("lat", "lng"
), class = "data.frame", row.names = c(NA, -17L))
all_states = map_data("world")
# world version:
wp = ggplot() +
geom_polygon(data = all_states, aes(x = long, y = lat, group = group), colour = "gray",
fill = "gray") +
coord_cartesian(ylim = c(0, 80), xlim = c(-155, 45)) +
geom_point(data = te, aes(x = lng, y = lat), color = "blue", size = 5,alpha = 0.6)
print(wp)
#states plot
sp = ggplot() +
geom_polygon(data = all_states, aes(x = long, y = lat, group = group), colour = "gray", fill = "gray") +
coord_cartesian(ylim = c(30, 52), xlim = c(-128, -114)) +
geom_point(data = te, aes(x = lng, y = lat), color = "blue", size = 5, alpha = 0.6)
print(sp)