Исходя из вашего примера.Чтобы упростить, просто используйте первые четыре многоугольника:
> plot(st_geometry(nc)[1:4])
Получите четыре многоугольника центроидов.Не обращайте внимания на предупреждение:
> xy = st_coordinates(st_centroid(nc)[1:4,])
Warning messages:
1: In st_centroid.sf(nc) :
st_centroid assumes attributes are constant over geometries of x
2: In st_centroid.sfc(st_geometry(x), of_largest_polygon = of_largest_polygon) :
st_centroid does not give correct centroids for longitude/latitude data
И нарисуйте несколько изогнутых стрелок между центроидами:
> curvedarrow(from=xy[2,],to=xy[1,],lcol="red", curve=.2)
> curvedarrow(from=xy[4,],to=xy[1,],lcol="red", curve=.2)
, что он изогнулся от графика, поэтому сгладьте его немного:
> curvedarrow(from=xy[4,],to=xy[1,],lcol="red", curve=.12)
Я добавил все центроиды к этому графику, чтобы вы могли видеть, что он рисует кривые от центроида к центроиду.