r ggplot-使用coord_polar在同心圆图中放置注释

时间:2018-12-28 18:45:49

标签: r ggplot2 geom-bar

我使用ggplot + geom_bar + polar_coord制作了同心圆图表,但我很难将注释放置在正确的位置。采取以下代码,该代码是根据我问过的previous question及其令人满意的答案而修改的。

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 = NA) +                       
  stat_count(aes(yintercept = cumsum(rev(..count..))),     
             geom = "hline") +                             
  coord_polar()+
  annotate("text",label = "A", x = 1, y = 2.5,size=2)+
  annotate("text",label = "B", x = 1, y = 3.5,size=2)

这就是我得到的:

This is what I get

问题是展示位置。我想将annotate文字放在圆圈周围。但是,由于我是根据geom_bar的1个观察值创建图表的,因此只能沿垂直轴移动文本。

如何在图表中自由放置注释?预先非常感谢。

1 个答案:

答案 0 :(得分:0)

没有清楚地得到问题,但是...使用geom_text进行自由注释,如下所示:

    ggplot(df, aes(factor(1), fill = C)) +
  geom_bar(width = 1, colour = NA) +                       
  stat_count(aes(yintercept = cumsum(rev(..count..))),     
             geom = "hline") +                             
  coord_polar()+
  geom_text(label="A",x=1.2,y=2.5)+
  geom_text(label="B",x=1.5,y=3.5)

这给出: enter image description here

您可以根据需要进行编辑。