ggplot, facette, piechart: placer le texte au milieu de camembert en tranches

Je suis en train de produire une facettes camembert avec ggplot et confrontés à des problèmes avec la mise en place du texte dans le milieu de chaque tranche:

dat = read.table(text = "Channel Volume Cnt
                         AGENT   high   8344
                         AGENT medium   5448
                         AGENT    low  23823
                         KIOSK   high  19275
                         KIOSK medium  13554
                         KIOSK    low  38293", header=TRUE)

vis = ggplot(data=dat, aes(x=factor(1), y=Cnt, fill=Volume)) +
  geom_bar(stat="identity", position="fill") +
  coord_polar(theta="y") +
  facet_grid(Channel~.) +
  geom_text(aes(x=factor(1), y=Cnt, label=Cnt, ymax=Cnt), 
            position=position_fill(width=1))

La sortie:
ggplot, facette, piechart: placer le texte au milieu de camembert en tranches

Quels sont les paramètres de geom_text devrait être ajusté afin de placer numérique d'étiquettes dans le milieu de piechart tranches?

Question connexe est de savoir Tarte à la parcelle de l'obtention de son texte sur le dessus les uns des autres mais il ne gère pas les cas avec des facettes.

Mise à JOUR: a la suite de Paul Hiemstra conseils et l'approche de la question ci-dessus j'ai modifié le code comme suit:

---> pie_text = dat$Cnt/2 + c(0,cumsum(dat$Cnt)[-length(dat$Cnt)])

     vis = ggplot(data=dat, aes(x=factor(1), y=Cnt, fill=Volume)) +
     geom_bar(stat="identity", position="fill") +
     coord_polar(theta="y") +
     facet_grid(Channel~.) +
     geom_text(aes(x=factor(1), 
--->               y=pie_text, 
                   label=Cnt, ymax=Cnt), position=position_fill(width=1))

Comme je m'y attendais, le peaufinage du texte coordiantes est absolu, mais il doit être à l'intérieur de la facette des données:
ggplot, facette, piechart: placer le texte au milieu de camembert en tranches

ma dernière solution à ce problème est d'éviter les camemberts chaque fois que possible 🙂

OriginalL'auteur topchef | 2013-04-24