R Сегменты полярного графика с промежутками

Я создаю полярную диаграмму в R с помощью plotrix. Угол - это запись прослушивания, а длина берется из временной метки записи. Даты анализируются с помощью lubridate parse_date_time.

polar.plot(
    as.numeric(df$datetime), 
    df$heading, 
    rp.type="p", 
    start=90, 
    clockwise=TRUE, 
    show.grid.labels=FALSE
)

У меня проблема в том, что многоугольник связывает первую и последнюю точки. У меня также есть несколько пробелов в данных. Эти два обстоятельства приводят к тому, что линии многоугольника пересекают середину графика. В идеале я бы не связывал первую и последнюю точки и разрывал бы соединительные линии всякий раз, когда во временном ряду есть значительный разрыв.

Я уже вычисляю дельту между каждой записью, так что достаточно легко определить, где я хочу, чтобы эти пробелы возникали.

Я не привязан к plotrix, если есть другой способ достижения этих целей.

Спасибо за любую помощь.


person fracai    schedule 14.04.2016    source источник


Ответы (1)


Цифры... еще несколько минут, и у меня почти есть решение.

Во-первых, я получаю приличную полярную диаграмму с помощью 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 не предназначена для этого.

person fracai    schedule 14.04.2016