我正在用plotrix生成R中的极坐标图。角度是记录听觉,长度取自记录时间戳。使用lubridate parse_date_time 解析日期
polar.plot(
as.numeric(df$datetime),
df$heading,
rp.type="p",
start=90,
clockwise=TRUE,
show.grid.labels=FALSE
)
我的问题是多边形连接第一个和最后一个点。我在数据上也有一些空白。这两种情况会导致多边形的线条越过图表的中间。理想情况下,我不会连接第一个和最后一个点,只要时间序列中有显著的差距,我就会打破连接线。
我已经在计算每个记录之间的增量,所以很容易确定我希望这些差距发生在哪里。
如果有其他方法可以实现这些目标,我就不会受制于普洛特里克斯。
谢谢你的帮助。
数字。。。再过几分钟,我基本上就有了解决方案。
首先,我用ggplot2得到了一个不错的极坐标图。我不知道我怎么没早点发现。
ggplot2极坐标图箭头:
ggplot(df, aes(heading, datetime)) + coord_polar() + geom_path()
我认为我应该能够通过插入"NA"值或生成组来获得差距。ggplot2:中没有数据时断线
idx <- c(1, diff(df$datetime))
i2 <- c(1,which(idx != 1), nrow(df)+1)
df$grp <- rep(1:length(diff(i2)), diff(i2))
ggplot(df, aes(heading, datetime)) + coord_polar() + geom_path(group=grp)
我不知道我怎么没有发现ggplot2的绘图极性。
不过,ggplot2并没有选择连接点的最短路径(它在图表中一直循环,连接10到350,而不是穿过0)。
编辑:这可以通过coord_map()来解决ggplot2:如何正确链接极地投影地图周围的轨迹点?
编辑2:无论如何,coord_map不适用于此