манипулировать очертаниями geom_bar и coord_polar в ggplot2 r

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

df <- data.frame(A=letters[1:12],
                 B=c(rep("Dim_1",4),rep("Dim_2",4),rep("Dim_3",4)),
                 C=c(rep("Ind_1",2),rep("Ind_2",2),rep("Ind_3",2),rep("Ind_2",2),rep("Ind_5",2),rep("Ind_6",2)))

ggplot(df,aes(factor(1),fill=C))+
  geom_bar(width = 1,colour="black")+
  coord_polar()+
  scale_fill_manual(values = c("#FFFFFF","#CCCCCC","#CCCCCC","#999999","#999999"))

Концентрические окружности

Как избавиться от линии, идущей от центра круга к его вершине? Поскольку эта полярная диаграмма была сделана из гистограммы (geom_bar), еще один способ задать вопрос: как избавиться от границы в основании каждой гистограммы, но не по бокам или сверху?


person NBK    schedule 31.08.2018    source источник
comment
Хакерский и грязный, но без возни с geom_rect, возможно, слишком много цветов заливки ggplot(df,aes(x=factor(1),fill=C))+ geom_bar(width = 1, color = "black")+ coord_polar()+ geom_col(aes(x=0.5, y=1, color=C), width=0)   -  person lukeA    schedule 01.09.2018
comment
Спасибо за это. Это потенциальное решение, но цвета в geom_col должны использовать B в качестве масштаба. Я не могу сделать это, просто заменив C на B в geom_col...   -  person NBK    schedule 01.09.2018


Ответы (1)


Посмотрите, работает ли следующее для вас? Пояснения в аннотированном коде:

ggplot(df, aes(factor(1), fill = C)) +
  geom_bar(width = 1, colour = NA) +                       # hide all outlines in geom_bar
  stat_count(aes(yintercept = cumsum(rev(..count..))),     # add only the top line for each
             geom = "hline") +                             # bar in the stack
  coord_polar() +

  # optional: add black outline to the fill legend
  scale_fill_manual(values = c("#FFFFFF","#CCCCCC","#CCCCCC","#999999","#999999"),
                    guide = guide_legend(override.aes = list(color = "black")))

сюжет

person Z.Lin    schedule 01.09.2018
comment
Замечательно. Спасибо. - person NBK; 01.09.2018