модифицированный полярный график с использованием ggplots или других альтернативных пакетов с использованием R

Я пытаюсь создать хороший (!) Полярный сюжет со следующими данными.

<code>gr1 <- c(0, 5, 15, 20, 30, 40)
gr3 <- c(0, 5, 10, 25, 40, 60, 80)
gr2 <- c(0, 15, 25, 30, 40)

df2<- data.frame (pos = c(gr1, gr2, gr3), group = c(rep(1, length(gr1)),
 rep(2, length(gr1)), rep(2, length(gr1))))



inner circle segment to mark
                   first tier, group 1, between 15, 20
                               group 3, between 5, 10
                                        between  40 to 60 
                   second tier, group 1, between 15, 20
                               group 3, between 5, 10
                                        between 10, 25
                                        between  40 to 60 
</code>

Угол между двумя линиями между промежутком между двумя поз.

в моих реальных данных есть более двух уровней для построения.

Маркерами могут быть либо сегменты, либо другие метки, такие как закрашенные цвета.

Различные группы могут иметь цветовую кодировку, если это возможно.

enter image description here

Альтернатива с круговой маркировкой (предпочтительно)

enter image description here

Я попробовал это с ggplot2.

<code>cx <- ggplot(df2, aes(x = pos, group = group) +   geom_bar(width = 1, colour = "black"))
Error in aes(x = pos, group = group) + geom_bar(width = 1, colour = "black") :
  non-numeric argument to binary operator
cx + coord_polar()
</code>

Больше испытаний:

<code>df2$cpos <- cumsum (df2$pos)
cx <- ggplot(df2, aes(x = cpos, group = group) +   geom_bar(width = 1, colour = "black"))
</code>

Редактирует 1:

Я думаю, что мне было бы ужасно объяснять проблему. Вот фигура с объяснением. enter image description here

Позиция (позиция) - это непрерывная шкала, угол в полярности должен зависеть от того, где находится позиция. Он перезапустится, как только одна группа будет завершена. Я сделал трюк, чтобы кончить на этот трюк (я могу ошибаться).

Редактирует 2:

Следующий ответ открыл больше мыслей в вопросе. Это улучшенная версия, но управление цветом не работает.

<code>df2$cpos <- cumsum (df2$pos)
df2$y <- rep(3, length (df2$cpos))
cx <- ggplot(df2, aes(y = y, x = cpos))
cx + geom_bar(aes(stat = "identity",fill="yellow", colour = "yellow" )) + 
geom_point(aes(color = factor(group)), pch = 18, size = 2) + coord_polar() +
 scale_fill_manual(values=c("#CC6666", "#9999CC", "#66CC99"))+ ylim(0,3)
</code>

enter image description here

Когда я пытаюсь установить ylim (2,3) так, чтобы они выглядели как сегменты, которые также не работают.

<code>Error in data$y[data$y == -Inf] <- range$y.range[1] : 
  replacement has length zero
</code>

Ответы на вопрос(1)

Ваш ответ на вопрос