R + ggplot2 => adicionar labels no gráfico de setores facetado

Quero adicionar labels de dados no caractere de pizza com faceta.
Talvez alguém possa me ajudar.

Meus dados:

year <- c(1,2,1,2,1,2) prod <- c(1,1,2,2,3,3) quantity <- c(33,50,33,25,34,25) df <- data.frame(year, prod, quantity) rm(year, prod, quantity) 

Código:

 library(ggplot2) # center's calculated by hand centr2 <- c(16, 25, 49, 62.5, 81, 87.5) ggplot(data=df, aes(x=factor(1), y=quantity, fill=factor(prod))) + geom_bar(stat="identity") + geom_text(aes(x= factor(1), y=centr2, label = df$quantity), size=10) + facet_grid(facets = .~year, labeller = label_value) + coord_polar(theta = "y") 

E o meu resultado é:

torta de carvão

Se eu remover o coord_polar (theta = “y”), terei o seguinte enredo:

trama de bar

E agora está claro para mim, por que meus labels de dados não correspondem.
Mas eu não sei como consertar isso.

Eu leio:
1. Coloque etiquetas no gráfico de pizza
2. Adicione texto ao ggplot com densidades facetadas
3. Trama da torta que começa seu texto sobre se

Mas não encontrou a resposta.

Eu abordaria isso definindo outra variável (que eu chamo de pos ) em df que calcula a posição dos labels de texto. Eu faço isso com dplyr mas você também pode usar outros methods, é claro.

 library(dplyr) library(ggplot2) df <- df %>% group_by(year) %>% mutate(pos = cumsum(quantity)- quantity/2) ggplot(data=df, aes(x=factor(1), y=quantity, fill=factor(prod))) + geom_bar(stat="identity") + geom_text(aes(x= factor(1), y=pos, label = quantity), size=10) + # note y = pos facet_grid(facets = .~year, labeller = label_value) + coord_polar(theta = "y") 

torta

    Intereting Posts