我想删除区域外的小段(data = station_EVHOE)。 the map here
为此,我绘制了一个黑色部分,划分相关区域(右侧区域)。 所以我想删除左侧区域中的点。
我的代码是用ggplot:
制作的 d <- ggplot() +
coord_map(xlim = c(-12,-1), ylim = c(43,52)) +
geom_polygon(aes(x=longitude, y=latitude), data = coast_EVHOE) +
geom_segment(aes(x = longitude_début, y = latitude_début, xend = longitude_fin, yend = latitude_fin, colour = as.factor(annee)), data = station_EVHOE) +
geom_segment(aes(x = -4.374794, y = 47.7975, xend = -7.8694, yend = 43.773630))
那么,是否可以提取黑色片段的坐标,以便删除右侧区域之外的点?
答案 0 :(得分:1)
#determine which station are on the right side of the line
#I use only one point, you can adapt to check if the two point of the station are on the right side of the plot
station_EVHOE$right_side =
((station_EVHOE$longitude_début + 4.374794)*(43.773630 - 47.7975)) -
((station_EVHOE$latitude_début - 47.7975)*(-7.8694 + 4.374794)) < 0
d <- ggplot() +
coord_map(xlim = c(-12,-1), ylim = c(43,52)) +
geom_polygon(aes(x=longitude, y=latitude), data = coast_EVHOE) +
# plot only the station at the right side of the line
geom_segment(aes(x = longitude_début, y = latitude_début, xend = longitude_fin, yend = latitude_fin, colour = as.factor(annee)), data = station_EVHOE[station_EVHOE$right_side,]) +
geom_segment(aes(x = -4.374794, y = 47.7975, xend = -7.8694, yend = 43.773630))