离开 geom_path 的路径
Leaving the path open from geom_path
我正在使用 geom_path 在海岸线地图上绘制数据,但我无法删除连接第一个和最后一个数据点的线。这方面的数据集相当大,但可以找到 here.
问题已在 this thread 上报告并修复,但对我的情况没有帮助。
LHplot <- ggplot(data = LH, aes(x = long, y = lat, group=group)) +
geom_path(aes(group=group), size = 1, color = "darkgrey") +
theme_bw() +
theme(axis.line.y=element_blank(),
axis.line.x = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.grid.major = element_blank(), # switch off major gridlines
panel.grid.minor = element_blank(), # switch off minor gridlines
panel.border = element_blank(),
text=element_text(family="Times New Roman", size=11)
)
LHplot
我还注意到,在绘制数据的子集时,路径可能打开也可能不打开
LH2 <- LH[1:16000,]
LH2plot <- ggplot(data = LH2, aes(x = long, y = lat, group=group)) +
geom_path(aes(group=group), size = 1, color = "darkgrey") +
theme_bw() +
theme(axis.line.y=element_blank(),
axis.line.x = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.grid.major = element_blank(), # switch off major gridlines
panel.grid.minor = element_blank(), # switch off minor gridlines
panel.border = element_blank(),
text=element_text(family="Times New Roman", size=11)
)
LH2plot
LH2 <- LH[1:50000,]
LH2plot <- ggplot(data = LH2, aes(x = long, y = lat, group=group)) +
geom_path(aes(group=group), size = 1, color = "darkgrey") +
theme_bw() +
theme(axis.line.y=element_blank(),
axis.line.x = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.grid.major = element_blank(), # switch off major gridlines
panel.grid.minor = element_blank(), # switch off minor gridlines
panel.border = element_blank(),
text=element_text(family="Times New Roman", size=11)
)
LH2plot
问题是否来自数据集的差距?或者只是它在数据框中的组织方式以及 geom_path 如何读取它?
编辑
来自下面的评论:我按纬度对数据进行排序以绘制从南到北的路径:
LH <- LH[order(LH$lat),]
这解决了线路问题,但又产生了另一个问题:
问题是你的大陆海岸线不是从一端开始到另一端,而是从中间某处开始。
首先是识别跳跃。下面我仅使用纬度来识别它,但如果需要(使用测地线距离)可以同时使用纬度和经度,但这会徒劳无功。
然后我们需要重新排列数据,将行从中断上方移动到数据集的末尾(在这种情况下,因为行在挪威顺时针方向)。
library(tidyverse)
#Find the largest change in latitude
LH %>%
group_by(group) %>%
mutate(llat = lag(lat), dlat = abs(lat - llat)) %>%
ungroup() %>%
mutate( n = 1:n()) %>%
slice(which.max(dlat))
#re-arrange data
bind_rows(LH %>% slice(-(1:16015)),
LH %>% slice(1:16015)) %>%
ggplot(aes(x = long, y = lat, group=group)) +
geom_path(size = 1, color = "darkgrey")
我正在使用 geom_path 在海岸线地图上绘制数据,但我无法删除连接第一个和最后一个数据点的线。这方面的数据集相当大,但可以找到 here.
问题已在 this thread 上报告并修复,但对我的情况没有帮助。
LHplot <- ggplot(data = LH, aes(x = long, y = lat, group=group)) +
geom_path(aes(group=group), size = 1, color = "darkgrey") +
theme_bw() +
theme(axis.line.y=element_blank(),
axis.line.x = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.grid.major = element_blank(), # switch off major gridlines
panel.grid.minor = element_blank(), # switch off minor gridlines
panel.border = element_blank(),
text=element_text(family="Times New Roman", size=11)
)
LHplot
我还注意到,在绘制数据的子集时,路径可能打开也可能不打开
LH2 <- LH[1:16000,]
LH2plot <- ggplot(data = LH2, aes(x = long, y = lat, group=group)) +
geom_path(aes(group=group), size = 1, color = "darkgrey") +
theme_bw() +
theme(axis.line.y=element_blank(),
axis.line.x = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.grid.major = element_blank(), # switch off major gridlines
panel.grid.minor = element_blank(), # switch off minor gridlines
panel.border = element_blank(),
text=element_text(family="Times New Roman", size=11)
)
LH2plot
LH2 <- LH[1:50000,]
LH2plot <- ggplot(data = LH2, aes(x = long, y = lat, group=group)) +
geom_path(aes(group=group), size = 1, color = "darkgrey") +
theme_bw() +
theme(axis.line.y=element_blank(),
axis.line.x = element_blank(),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
axis.text = element_blank(),
axis.ticks = element_blank(),
panel.grid.major = element_blank(), # switch off major gridlines
panel.grid.minor = element_blank(), # switch off minor gridlines
panel.border = element_blank(),
text=element_text(family="Times New Roman", size=11)
)
LH2plot
问题是否来自数据集的差距?或者只是它在数据框中的组织方式以及 geom_path 如何读取它?
编辑
来自下面的评论:我按纬度对数据进行排序以绘制从南到北的路径:
LH <- LH[order(LH$lat),]
这解决了线路问题,但又产生了另一个问题:
问题是你的大陆海岸线不是从一端开始到另一端,而是从中间某处开始。
首先是识别跳跃。下面我仅使用纬度来识别它,但如果需要(使用测地线距离)可以同时使用纬度和经度,但这会徒劳无功。
然后我们需要重新排列数据,将行从中断上方移动到数据集的末尾(在这种情况下,因为行在挪威顺时针方向)。
library(tidyverse)
#Find the largest change in latitude
LH %>%
group_by(group) %>%
mutate(llat = lag(lat), dlat = abs(lat - llat)) %>%
ungroup() %>%
mutate( n = 1:n()) %>%
slice(which.max(dlat))
#re-arrange data
bind_rows(LH %>% slice(-(1:16015)),
LH %>% slice(1:16015)) %>%
ggplot(aes(x = long, y = lat, group=group)) +
geom_path(size = 1, color = "darkgrey")