Wyśrodkuj etykiety skumulowanego paska (liczby) ggplot2

Próbuję umieścić etykiety na wykresie słupkowym za pomocą tego podejścia (choć jeśli jest teraz lepsze podejście, jestem otwarty na to, co kiedykolwiek):

Wyświetlanie wartości danych na skumulowanym wykresie słupkowym w ggplot2

Oto moja oryginalna fabuła:

dat <- data.frame(with(mtcars, table(cyl, gear)))

ggplot(dat, aes(x = gear, fill = cyl)) +
    geom_bar(aes(weight=Freq), position="stack") +
    geom_text(position = "stack", aes(x = gear, y = Freq, 
        ymax = 15, label = cyl), size=4)

Oto moja próba wyśrodkowania etykiet w każdej sekcji wypełnienia:

dat2 <- ddply(dat, .(cyl), transform, pos = cumsum(Freq) - 0.5*Freq)

library(plyr)
ggplot(dat2, aes(x = gear, fill = cyl)) +
    geom_bar(aes(weight=Freq), position="stack") +
    geom_text(position = "stack", aes(x = gear, y = pos, 
        ymax = 15, label = cyl), size=4)

Jak mogę wyśrodkować etykiety w każdej sekcji wypełnienia?

questionAnswers(1)

yourAnswerToTheQuestion