2016-12-13 3 views
9

После прочтения большого количества сообщений и веб-сайтов я не могу узнать, как создать файл формы многоугольника из моей таблицы данных lon-lat. Я бы хотел создать такие карты, как этот. enter image description hereСоздание шейп-файлов из точек в кадре данных

Мой файл данных csv содержит долготу, широту и атрибут 1000 пунктов в Средиземном море. Я хотел бы создать shapefiles подмножество данных по атрибуту, а затем построить с ggplot2 geom_polygon, заполняя атрибутом.

Я попробовал этот R-код (от https://stackoverflow.com/a/25608162/709777), но без успеха

library("sp") 
library("rgdal") 

clust1 <- subset(datos, datos$cluster == 1) 
coords<-cbind(clust1$longitud,clust1$latitud) 

sp_poly <- SpatialPolygons(list(Polygons(list(Polygon(coords)), ID=1))) 

sp_poly_df <- SpatialPolygonsDataFrame(sp_poly, data=data.frame(ID=1)) 
writeOGR(sp_poly_df, "chull", layer="chull", driver="ESRI Shapefile") 

ggplot() + geom_polygon(data=sp_poly_df, aes(x=long, y=lat, group=group)) 

Это производит этот вывод, что это не очевидно, шейп/полигон

enter image description here

plot(sp_poly_df) дает это:

enter image description here

Нужно ли предварительно форматировать sp_poly_df для построения графика с помощью ggplot?

Как создать шейп-файл или SpatialPolygon? Я хотел бы объединить все точки с одним и тем же атрибутом кластера для сопоставления различных областей/полигонов в наборе данных, а затем заполнить полигоны значением кластера. Возможно, это, создавая полигоны/шейп-файлы, не лучший подход для создания такого типа карты.

также пытались geom_map, но это не совсем то, что я хочу:

ggplot() + 
    geom_point(data=datos, aes(x=longitud, y=latitud, color=id), 
         alpha=1, na.rm=TRUE) + scale_size(range=c(1,12)) + 
scale_color_identity() + 
    labs(title= "med cluster", 
       x="Longitude", y= "Latitude") + coord_map() 

enter image description here

Заранее спасибо за помощь

данных:

> dput(dato) 
structure(list(longitud = c(18.875, 19.125, 19.375, 18.375, 18.625, 
18.875, 19.125, 19.375, 19.625, 19.875, 17.875, 18.125, 18.375, 
18.625, 18.875, 19.125, 19.375, 19.625, 19.875, 20.125, 28.875, 
29.125, 29.375, 17.125, 17.375, 17.625, 17.875, 18.125, 18.375, 
18.625, 18.875, 19.125, 19.375, 19.625, 19.875, 20.125, 27.875, 
28.125, 28.375, 28.625, 28.875, 29.125, 29.375, 29.625, 29.875, 
32.625, 32.875, 33.625, 33.875, 15.875, 16.125, 16.375, 16.625, 
16.875, 17.125, 17.375, 17.625, 17.875, 18.125, 18.375, 18.625, 
18.875, 19.125, 19.375, 19.625, 19.875, 20.125, 27.125, 27.375, 
27.625, 27.875, 28.125, 28.375, 28.625, 28.875, 29.125, 29.375, 
29.625, 29.875, 30.125, 30.375, 32.125, 32.375, 32.625, 32.875, 
33.125, 33.375, 33.625, 33.875, 34.125, 15.625, 15.875, 16.125, 
16.375, 16.625, 16.875, 17.125, 17.375, 17.625, 17.875, 18.125, 
18.375, 18.625, 18.875, 19.125, 19.375, 19.625, 19.875, 25.375, 
25.625, 25.875, 26.125, 26.375, 26.625, 26.875, 27.125, 27.375, 
27.625, 27.875, 28.125, 28.375, 28.625, 28.875, 29.125, 29.375, 
29.625, 29.875, 30.125, 30.375, 30.625, 30.875, 31.125, 31.375, 
31.625, 31.875, 32.125, 32.375, 32.625, 32.875, 33.125, 33.375, 
33.625, 33.875, 34.125, 34.375, 15.375, 15.625, 15.875, 16.125, 
16.375, 16.625, 16.875, 17.125, 17.375, 17.625, 17.875, 18.125, 
18.375, 18.625, 18.875, 19.125, 19.375, 19.625, 19.875, 25.125, 
25.375, 25.625, 25.875, 26.125, 26.375, 26.625, 26.875, 27.125, 
27.375, 27.625, 27.875, 28.125, 28.375, 28.625, 28.875, 29.125, 
29.375, 29.625, 29.875, 30.125, 30.375, 30.625, 30.875, 31.125, 
31.375, 31.625, 31.875, 32.125, 32.375, 32.625, 32.875, 33.125, 
33.375, 33.625, 33.875, 34.125, 34.375, 34.625, 15.375, 15.625, 
15.875, 16.125, 16.375, 16.625, 16.875, 17.125, 17.375, 17.625, 
17.875, 18.125, 18.375, 18.625, 18.875, 19.125, 19.375, 19.625, 
19.875, 23.875, 24.125, 24.375, 24.625, 24.875, 25.125, 25.375, 
25.625, 25.875, 26.125, 26.375, 26.625, 26.875, 27.125, 27.375, 
27.625, 27.875, 28.125, 28.375, 28.625, 28.875, 29.125, 29.375, 
29.625, 29.875, 30.125, 30.375, 30.625, 30.875, 31.125, 31.375, 
31.625, 31.875, 32.125, 32.375, 32.625, 32.875, 33.125, 33.375, 
33.625, 33.875, 34.125, 34.375, 34.625, 15.125, 15.375, 15.625, 
15.875, 16.125, 16.375, 16.625, 16.875, 17.125, 17.375, 17.625, 
17.875, 18.125, 18.375, 18.625, 18.875, 19.125, 19.375, 19.625, 
19.875, 20.125, 20.375, 23.125, 23.375, 23.625, 23.875, 24.125, 
24.375, 24.625, 24.875, 25.125, 25.375, 25.625, 25.875, 26.125, 
26.375, 26.625, 26.875, 27.125, 27.375, 27.625, 27.875, 28.125, 
28.375, 28.625, 28.875, 29.125, 29.375, 29.625, 29.875, 30.125, 
30.375, 30.625, 30.875, 31.125, 31.375, 31.625, 31.875, 32.125, 
32.375, 32.625, 32.875, 33.125, 33.375, 33.625, 33.875, 34.125, 
34.375, 34.625, 34.875, 14.375, 14.625, 14.875, 15.125, 15.375, 
15.625, 15.875, 16.125, 16.375, 16.625, 16.875, 17.125, 17.375, 
17.625, 17.875, 18.125, 18.375, 18.625, 18.875, 19.125, 19.375, 
19.625, 19.875, 20.125, 20.375, 20.625, 20.875, 23.125, 23.375, 
23.625, 23.875, 24.125, 24.375, 24.625, 24.875, 25.125, 25.375, 
25.625, 25.875, 26.125, 26.375, 26.625, 26.875, 27.125, 27.375, 
27.625, 27.875, 28.125, 28.375, 28.625, 28.875, 29.125, 29.375, 
29.625, 29.875, 30.125, 30.375, 30.625, 30.875, 31.125, 31.375, 
31.625, 31.875, 32.125, 32.375, 32.625, 32.875, 33.125, 33.375, 
33.625, 33.875, 34.125, 34.375, 34.625, 34.875, 12.375, 12.625, 
12.875, 13.125, 13.375, 13.625, 13.875, 14.125, 14.375, 14.625, 
14.875, 15.125, 15.375, 15.625, 15.875, 16.125, 16.375, 16.625, 
16.875, 17.125, 17.375, 17.625, 17.875, 18.125, 18.375, 18.625, 
18.875, 19.125, 19.375, 19.625, 19.875, 20.125, 20.375, 20.625, 
20.875, 21.125, 21.375, 21.625, 22.375, 22.625, 22.875, 23.125, 
23.375, 23.625, 23.875, 24.125, 24.375, 24.625, 24.875, 25.125, 
25.375, 25.625, 25.875, 26.125, 26.375, 26.625, 26.875, 27.125, 
27.375, 27.625, 27.875, 28.125, 28.375, 28.625, 28.875, 29.125, 
29.375, 29.625, 29.875, 30.125, 30.375, 30.625, 30.875, 31.125, 
31.375, 31.625, 31.875, 32.125, 32.375, 32.625, 32.875, 33.125, 
33.375, 33.625, 33.875, 34.125, 34.375, 34.625, 34.875, 35.125, 
11.625, 11.875, 12.125, 12.375, 12.625, 12.875, 13.125, 13.375, 
13.625, 13.875, 14.125, 14.375, 14.625, 14.875, 15.125, 15.375, 
15.625, 15.875, 16.125, 16.375, 16.625, 16.875, 17.125, 17.375, 
17.625, 17.875, 18.125, 18.375, 18.625, 18.875, 19.125, 19.375, 
19.625, 19.875, 20.125, 20.375, 20.625, 20.875, 21.125, 21.375, 
21.625, 21.875, 22.125, 22.375, 22.625, 22.875, 23.125, 23.375, 
23.625, 23.875, 24.125, 24.375, 24.625, 24.875, 25.125, 25.375, 
25.625, 25.875, 26.125, 26.375, 26.625, 26.875, 27.125, 27.375, 
27.625, 27.875, 28.125, 28.375, 28.625, 28.875, 29.125, 29.375, 
29.625, 29.875, 30.125, 30.375, 30.625, 30.875, 31.125, 31.375, 
31.625, 31.875, 32.125, 32.375, 32.625, 32.875, 33.125, 33.375, 
33.625, 33.875, 34.125, 34.375, 34.625, 34.875, 35.125, 11.125, 
11.375, 11.625, 11.875, 12.125, 12.375, 12.625, 12.875, 13.125, 
13.375, 13.625, 13.875, 14.125, 14.375, 14.625, 14.875, 15.125, 
15.375, 15.625, 15.875, 16.125, 16.375, 16.625, 16.875, 17.125, 
17.375, 17.625, 17.875, 18.125, 18.375, 18.625, 18.875, 19.125, 
19.375, 19.625, 19.875, 20.125, 20.375, 20.625, 20.875, 21.125, 
21.375, 21.625, 21.875, 22.125, 22.375, 22.625, 22.875, 23.125, 
23.375, 23.625, 23.875, 24.125, 24.375, 24.625, 24.875, 25.125, 
25.375, 25.625, 25.875, 26.125, 26.375, 26.625, 26.875, 27.125, 
27.375, 27.625, 27.875, 28.125, 28.375, 28.625, 28.875, 29.125, 
29.375, 29.625, 29.875, 30.125, 30.375, 30.625, 30.875, 31.125, 
31.375, 31.625, 31.875, 32.125, 32.375, 32.625, 32.875, 33.125, 
33.375, 33.625, 33.875, 34.125, 34.375, 34.625, 34.875, 35.125, 
10.875, 11.125, 11.375, 11.625, 11.875, 12.125, 12.375, 12.625, 
12.875, 13.125, 13.375, 13.625, 13.875, 14.125, 14.375, 14.625, 
14.875, 15.125, 15.375, 15.625, 15.875, 16.125, 16.375, 16.625, 
16.875, 17.125, 17.375, 17.625, 17.875, 18.125, 18.375, 18.625, 
18.875, 19.125, 19.375, 19.625, 19.875, 20.125, 20.375, 20.625, 
20.875, 21.125, 21.375, 21.625, 21.875, 22.125, 22.375, 22.625, 
22.875, 23.125, 23.375, 23.625, 23.875, 24.125, 24.375, 24.625, 
24.875, 25.125, 25.375, 25.625, 25.875, 26.125, 26.375, 26.625, 
26.875, 27.125, 27.375, 27.625, 27.875, 28.125, 28.375, 28.625, 
28.875, 29.125, 29.375, 29.625, 29.875, 30.125, 30.375, 30.625, 
30.875, 31.125, 31.375, 31.625, 31.875, 32.125, 32.375, 32.625, 
32.875, 33.125, 33.375, 33.625, 33.875, 34.125, 34.375, 34.625, 
34.875, 35.125, 35.375, 10.125, 10.375, 10.625, 10.875, 11.125, 
11.375, 11.625, 11.875, 12.125, 12.375, 12.625, 12.875, 13.125, 
13.375, 13.625, 13.875, 14.125, 14.375, 14.625, 14.875, 15.125, 
15.375, 15.625, 15.875, 16.125, 16.375, 16.625, 16.875, 17.125, 
17.375, 17.625, 17.875, 18.125, 18.375, 18.625, 18.875, 19.125, 
19.375, 19.625, 19.875, 20.125, 20.375, 20.625, 20.875, 21.125, 
21.375, 21.625, 21.875, 22.125, 22.375, 22.625, 22.875, 23.125, 
23.375, 23.625, 23.875, 24.125, 24.375, 24.625, 24.875, 25.125, 
25.375, 25.625, 25.875, 26.125, 26.375, 26.625, 26.875, 27.125, 
27.375, 27.625, 27.875, 28.125, 28.375, 28.625, 28.875, 29.125, 
29.375, 29.625, 29.875, 30.125, 30.375, 30.625, 30.875, 31.125, 
31.375, 31.625, 31.875, 32.125, 32.375, 32.625, 32.875, 33.125, 
33.375, 33.625, 33.875, 34.125, 34.375, 34.625, 34.875, 35.125, 
35.375, 10.125, 10.375, 10.625, 10.875, 11.125, 11.375, 11.625, 
11.875, 12.125, 12.375, 12.625, 12.875, 13.125, 13.375, 13.625, 
13.875, 14.125, 14.375, 14.625, 14.875, 15.125, 15.375, 15.625, 
15.875, 16.125, 16.375, 16.625, 16.875, 17.125, 17.375, 17.625, 
17.875, 18.125, 18.375, 18.625, 18.875, 19.125, 19.375, 19.625, 
19.875, 20.125, 20.375, 20.625, 20.875, 21.125, 21.375, 21.625, 
21.875, 22.125, 22.375, 22.625, 22.875, 23.125, 23.375, 23.625, 
23.875, 24.125, 24.375, 24.625, 24.875, 25.125, 25.375, 25.625, 
25.875, 26.125, 26.375, 26.625, 26.875, 27.125, 27.375, 27.625, 
27.875, 28.125, 28.375, 28.625, 28.875, 29.125, 29.375, 29.625, 
29.875, 30.125, 30.375, 30.625, 30.875, 31.125, 31.375, 31.625, 
31.875, 32.125, 32.375, 32.625, 32.875, 33.125, 33.375, 33.625, 
33.875, 34.125, 34.375, 34.625, 34.875, 35.125, 35.375, 35.625, 
10.375, 10.625, 10.875), latitud = c(30.375, 30.375, 30.375, 
30.625, 30.625, 30.625, 30.625, 30.625, 30.625, 30.625, 30.875, 
30.875, 30.875, 30.875, 30.875, 30.875, 30.875, 30.875, 30.875, 
30.875, 30.875, 30.875, 30.875, 31.125, 31.125, 31.125, 31.125, 
31.125, 31.125, 31.125, 31.125, 31.125, 31.125, 31.125, 31.125, 
31.125, 31.125, 31.125, 31.125, 31.125, 31.125, 31.125, 31.125, 
31.125, 31.125, 31.125, 31.125, 31.125, 31.125, 31.375, 31.375, 
31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 
31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 
31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 
31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 
31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 31.375, 31.625, 
31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 
31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 
31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 
31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 
31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 
31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 
31.625, 31.625, 31.625, 31.625, 31.625, 31.625, 31.875, 31.875, 
31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 
31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 
31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 
31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 
31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 
31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 
31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 31.875, 
32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 
32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 
32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 
32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 
32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 
32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 
32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 
32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.125, 32.375, 
32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 
32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 
32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 
32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 
32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 
32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 
32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 
32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 32.375, 
32.375, 32.375, 32.375, 32.375, 32.375, 32.625, 32.625, 32.625, 
32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 
32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 
32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 
32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 
32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 
32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 
32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 
32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 
32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 32.625, 
32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 
32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 
32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 
32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 
32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 
32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 
32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 
32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 
32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 
32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 
32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 32.875, 
32.875, 32.875, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 33.125, 
33.125, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 33.375, 
33.375, 33.375, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 33.625, 
33.625, 33.625, 33.625, 33.625, 33.625, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 33.875, 
33.875, 33.875, 33.875, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 34.125, 
34.125, 34.125, 34.375, 34.375, 34.375), cluster = c(1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 
3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 
1L, 1L, 1L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 1L, 1L, 1L, 3L, 3L, 3L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 3L, 3L, 3L, 3L, 2L, 2L, 3L, 3L, 1L, 2L, 2L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
3L, 3L, 3L, 1L, 3L, 3L, 3L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 3L, 1L, 1L, 1L, 2L, 2L, 
2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 
1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 3L, 
3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 2L, 
2L, 2L, 2L, 3L, 3L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 
3L, 3L, 3L, 3L, 3L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 1L, 1L, 1L, 3L, 3L, 3L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 1L, 1L, 1L, 3L, 3L, 3L, 3L, 2L, 
2L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 
2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
3L, 3L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 2L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
4L, 2L, 2L, 3L, 1L, 1L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 
2L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 1L, 1L, 1L, 
1L, 1L, 4L, 4L, 2L, 2L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 4L, 4L, 4L, 4L, 
4L, 4L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 1L, 
1L, 1L, 1L, 4L, 4L, 4L, 2L, 2L, 3L, 3L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 2L, 2L, 3L, 3L, 3L, 2L, 2L, 2L, 2L, 2L, 4L, 4L, 
4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 4L, 4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
3L, 3L, 1L, 1L, 1L, 1L, 5L, 5L, 5L, 4L, 4L, 4L, 2L, 2L, 2L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 2L, 3L, 2L, 2L, 2L, 2L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 2L, 2L, 2L, 2L, 2L, 4L, 2L, 
2L, 2L, 3L, 3L, 2L, 2L, 2L, 2L, 4L, 4L, 4L, 4L, 4L, 4L, 2L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 1L, 1L, 1L, 5L, 5L, 5L, 4L, 
4L, 4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 2L, 2L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 2L, 2L, 4L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 2L, 2L, 2L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 1L, 
1L, 1L, 1L, 5L, 5L, 5L)), .Names = c("longitud", "latitud", "cluster" 
), row.names = c(NA, 1000L), class = "data.frame") 
+2

Вы пробовали [geom_map] (http://docs.ggplot2.org /current/geom_map.html)? –

+0

@ RomanLuštrik Добавлен код и вывод geom_map. Не совсем то, что я хочу, я бы предпочел карту заполненных многоугольников, а не эту карту точек. – pacomet

+0

Я не вижу «geom_map' call или putput в любом месте? –

ответ

5

Спасибо к комментарию @ lorenzo-busetto и к blog post от Mazama Science (для преобразования данных в формат ggplot2). Я мог бы получить желаемый результат.

Вот окончательный код R, надеюсь, что это может помочь некоторым другим пользователям ¨R

# Packages 
library(stringr) 
library(ggplot2) 
library(mapdata) 
library(maptools) 
library("gpclib") 
library(rgeos) 
library(raster) 
library(sp) 
library(rgdal) 

# Path to data 
ruta_datos<-"/home/meteo/PROJECTES/VERSUS/OUTPUT/DATA/CLUSTER_MED/" 

# List of data files 
files <- list.files(path = ruta_datos, pattern = "SST-cluster-mitja-mensual-") 

# read data for i=8. Originally a for loop to read a bunch of files 
i=8 
datos<-read.csv(paste0(ruta_datos,files[i],sep=""),header=TRUE,na.strings = "NA") 

# Create raster from xyz data 
dat.raster<-rasterFromXYZ(datos) 
# Create Polygon 
dat.poly <- rasterToPolygons(dat.raster, dissolve=TRUE) 
# add to data a new column termed "id" composed of the rownames of data 
[email protected]$id <- rownames([email protected]) 

# create a data.frame from our spatial object 
datPoints <- fortify(dat.poly, region = "id") 

# merge the "fortified" data with the data from our spatial object 
datDF <- merge(datPoints, [email protected], by = "id") 

[email protected]$id <- rownames([email protected]) 

datPoints <- fortify(dat.poly, region = "id") 
datDF <- merge(datPoints, [email protected], by = "id") 

# Map settings 
# Prepare map coastline 
if (!rgeosStatus()) gpclibPermit() 

# path to the GSHHS maps on my computer 
costa <- "/home/meteo/PROJECTES/VERSUS/DATA/GEO/gshhs_f.b" 
shore <- getRgshhsMap(costa, xlim = c(-15, 45), ylim = c(30, 50)) 

# Labels 
ewbrks <- seq(-15,45,5) 
nsbrks <- seq(30,50,5) 

# Color palette 
sst_paleta <- c("#4eb400","#a0ce00","#f7e400","#f8b600","#f88700","#f85900","#e82c0e","#d8001d","#ff0099","#b54cff","#998cff") 

# Legend breaks 
sst_breaks <- c(1,2,3,4,5,6,7,8,9,10,11) 

# Plot map 
ggplot(data = datDF, aes(x=long, y=lat, group = group, fill = cluster)) + 
    geom_polygon() + 
    geom_polygon(data = shore, aes(x=long, y = lat, group = group), size=0.2, color = "black", fill = "burlywood2") + 
    theme_bw() + 
    coord_fixed(1.3) + scale_x_continuous(breaks = ewbrks,expand = c(0, 0)) + 
    scale_y_continuous(breaks = ewbrks,expand = c(0, 0)) + 
    scale_fill_gradientn(colours = sst_paleta, na.value = NA, limits=c(1,11), breaks = sst_breaks) 

и карта enter image description here

Смежные вопросы