tutorial - superponer graficas en r ggplot
R+ggplot2=> agregar etiquetas en el gráfico circular de facetas (1)
Esta pregunta ya tiene una respuesta aquí:
Quiero agregar etiquetas de datos en el carácter de pastel de facetas.
Tal vez alguien pueda ayudarme.
Mis datos:
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")
Y mi resultado es:
Si elimino coord_polar (theta = "y"), tendré la siguiente gráfica:
Y ahora está claro para mí, por qué mis etiquetas de datos no coinciden.
Pero no sé cómo arreglarlo.
Yo leo:
1. Coloque las etiquetas en el gráfico circular
2. Agrega texto a ggplot con densidades facetadas
3. Gráfico de tarta poniendo su texto uno encima del otro
Pero no encontré la respuesta.
Me acercaría a esto definiendo otra variable (a la que llamo pos
) en df
que calcula la posición de las etiquetas de texto. Hago esto con dplyr
pero también podrías usar otros métodos, por supuesto.
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")