我正在尝试使用
ggplot2
绘制一只鸟在南极周围的轨迹。到目前为止,我得到了一个投影在极坐标上的地图,我还成功地正确绘制了轨迹点,并且几乎正确链接它们,但是……随着轨迹穿过国际日期和时间线,ggplot2
无法正确地链接该线两侧的2个点。因此,我正在寻找一种方法强制ggplot以连续方式连接这些点。
这是我的数据集:
Data =>
ID Date Time A1 Lat. Long.
10 12.9.2008 22:00 1 21.14092 70.98817
10 12.9.2008 22:20 1 21.13031 70.97592
10 12.9.2008 22:40 2 21.13522 70.97853
10 12.9.2008 23:00 1 21.13731 70.97817
10 12.9.2008 23:20 3 21.14197 70.97981
10 12.9.2008 23:40 1 21.14156 70.98158
10 12.9.2008 23:40 1 21.14156 70.98158
10 13.9.2008 00:00 2 21.14150 70.98478
10 13.9.2008 00:20 3 21.14117 70.98803
10 13.9.2008 00:40 1 21.14117 70.98803
10 13.9.2008 01:00 2 21.14117 70.98803
....
ID是鸟的身份证号码。
使用Nick K代码进行更新
这是我的原始图表,没有使用时间维度和线条。
south_map <- map_data("world") %>% group_by(group)
set.seed(123)
track_df2 <- new_df2
long_diff <- diff(new_df2$Long)
long_diff[long_diff < -180] <- long_diff[long_diff < -180] + 360
long_diff[long_diff > 180] <- long_diff[long_diff > 180] - 360
track_df2$Longitude <- cumsum(c(new_df2$Long[1], long_diff))
ggplot(track_df2, aes(x = track_df2$Long, y = track_df2$Lat)) +
geom_polygon(aes(group = a3_id), data = south_map, colour = "grey", fill = "gainsboro") +
geom_point(aes(colour = factor(a3_id)), size = 2)
A1定义了鸟目前正在做的事情。
dput()
共享数据以便复现。 - Gregor Thomasdput
分享数据。请参考这个问题及其答案。 - akhmed