R + ggplot2 => ajouter des étiquettes sur le diagramme à secteurs facet [dupliquer]
cette question a déjà une réponse ici:
je veux ajouter des étiquettes de données sur des ombles à tartes.
Peut-être que quelqu'un pourra m'aider.
My données:
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)
Code:
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")
et mon résultat est:
si je supprime coordin_polar (theta = "y"), j'aurai le tracé suivant:
et maintenant il est clair pour moi, pourquoi mes étiquettes de données ne correspondaient pas.
Mais je ne sais pas comment le résoudre.
je lis:
1. placer les étiquettes sur le diagramme à secteurs
2. ajouter du texte à ggplot avec des densités facettées 1519130920
3. Pie plot obtenir son texte sur l'autre
mais n'a pas trouvé la réponse.
1 réponses
j'aborderais cela en définissant une autre variable (que j'appelle pos
) dans df
qui calcule la position des étiquettes de texte. Je le fais avec dplyr
mais vous pouvez également utiliser d'autres méthodes de cours.
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")