R: Facettiertes Balkendiagramm mit prozentualen Beschriftungen, die für jede Zeichnung unabhängig sind

Ich versuche, facet_grid zu verwenden, um mehrere Diagramme zu erstellen, bei denen die prozentualen Beschriftungen der einzelnen Diagramme zu 100% addieren.

In dem bereitgestellten Bild addieren sich die Prozentangaben zu 49% (erste Facette) und 51% (zweite Facette).

Ich habe gesehendiese Frage Die Lösung besteht darin, die Daten außerhalb von ggplot zu aggregieren. Ich würde das lieber nicht tun, ich glaube das ist ein besserer Ansatz.

library("ggplot2")
library("scales")

set.seed(123)

df <- data.frame(x = rnorm(10000, mean = 100, sd = 50))

df$factor_variable <- cut(df$x, right = TRUE, 
                          breaks = c(0, 25, 50, 100, 200, 10000),
                          labels = c("0 - 25", "26 - 50", "51 - 100", "101 - 200", "> 200")
                          )

df$second_factor_variable <- ifelse(df$x < 100, 1, 2)

df <- sample(df, x > 0)

table(df$second_factor_variable)

p1 <- ggplot(df, aes(x = factor_variable, y = (..count..)/sum(..count..), ymax = 0.8))
p1 <- p1 + geom_bar(fill = "deepskyblue3", width=.5)
p1 <- p1 + stat_bin(geom = "text",
                    aes(label = paste(round((..count..)/sum(..count..)*100), "%")),
                    vjust = -1, color = "grey30", size = 6)
p1 <- p1 + xlab(NULL) + ylab(NULL)
p1 <- p1 + scale_y_continuous(label = percent_format())
p1 <- p1 + xlim("0 - 25", "26 - 50", "51 - 100", "101 - 200", "> 200")
p1 <- p1 + facet_grid(. ~ second_factor_variable)

print(p1)

Antworten auf die Frage(1)

Ihre Antwort auf die Frage