我在绘制多边形时遇到了麻烦,我无法理解为什么。 这是我的代码:
#Load coordinates
ices <- read.csv("FILE PATH/ices_coord.csv", sep = ",")
#Reproject to European projection
coordinates(ices)<-c("long","lat")
proj4string(ices) <- CRS("+proj=longlat")
ices_laea<-spTransform(ices, CRS("+proj=laea"))
#Create dataframe
ices_laea_df<-data.frame(ices_laea)
library(ggplot2)
ggplot()+
geom_polygon(data=ices_laea_df, aes(long,lat,group=group), fill="white", color = "gray70")
但是我如何摆脱连接线(我用红色染色了两个,但还有更多)。我很确定使用“group = group”或“group = ICES_area”会起作用,但事实并非如此。而且我已经失去了一半的头发:)。
使用geom_path而不是geom_polygon会得到相同的结果......
您是否已遇到此问题?你知道解决它的诀窍吗?
非常感谢你的帮助,
佛瑞德
答案 0 :(得分:3)
这不是回答但要说明的代码:
ices <- readr::read_csv("ices_coord.csv")
purrr::map_lgl(unique(ices$ICES_area), function(area) {
poly <- dplyr::filter(ices, ICES_area==area)
identical(poly[1,], poly[nrow(poly),])
})
## [1] FALSE TRUE TRUE FALSE TRUE TRUE TRUE TRUE FALSE FALSE
## [11] TRUE FALSE FALSE FALSE TRUE FALSE FALSE FALSE TRUE FALSE
## [21] FALSE FALSE TRUE TRUE FALSE TRUE TRUE FALSE TRUE TRUE
## [31] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
所有这些都需要TRUE
才能获得你要求的连接好的多边形(多边形和路径是带有多边形的有序点列表,条件是start和amp; end是相同的)从那以后几乎不可能说出来:
dplyr::count(ices, ICES_area, long, lat) %>%
dplyr::filter(n>1) %>%
dplyr::ungroup() %>%
dplyr::count(ICES_area) %>%
dplyr::select(area=1, duplcated_pts=2) %>%
print(n=39)
## # A tibble: 39 × 2
## area duplcated_pts
## <chr> <int>
## 1 Ia 1
## 2 Ib 2
## 3 IIa 311
## 4 IIb 322
## 5 IIIa 9
## 6 IIIb 1
## 7 IIIc 1
## 8 IIId 76
## 9 IVa 1
## 10 IVb 1
## 11 IVc 1
## 12 IXa 1
## 13 IXb 10
## 14 Va 6
## 15 Vb 29
## 16 VIa 1
## 17 VIb 21
## 18 VIIa 1
## 19 VIIb 1
## 20 VIIc 21
## 21 VIId 1
## 22 VIIe 1
## 23 VIIf 1
## 24 VIIg 1
## 25 VIIh 1
## 26 VIIIa 1
## 27 VIIIb 1
## 28 VIIIc 1
## 29 VIIId 10
## 30 VIIIe 8
## 31 VIIj 14
## 32 VIIk 66
## 33 Xa 95
## 34 Xb 1
## 35 XIIa 106
## 36 XIIb 1
## 37 XIIc 1
## 38 XIVa 1
## 39 XIVb 65
某些群体每组有许多重复点。