我使用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
)
我遇到的问题是多边形链接了第一个和最后一个点。我的数据也有一些差距。这两种情况导致多边形的线条越过图表的中间。理想情况下,我不会链接第一个和最后一个点,只要时间序列中存在显着差距,我就会断开连接线。
我已经计算了每条记录之间的差值,因此很容易确定我希望这些差距发生的位置。
如果有其他方法可以实现这些目标,我与plotrix无关。
感谢您的帮助。
答案 0 :(得分:0)
数字......再过几分钟,我主要有一个解决方案。
首先,我正在使用ggplot2获得一个不错的极坐标图表。我不确定我之前怎么没找到。
ggplot(df, aes(heading, datetime)) + coord_polar() + geom_path()
我认为我应该能够通过插入“NA”值或生成组来弥补差距。 Line break when no data in 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: How to link correctly track points around polar projection map?
编辑2 : 没关系,coord_map不适合这个