Próbuję użyć facet_grid do wygenerowania kilku wykresów, w których każdy procent procentowy działki zostanie dodany do 100%.R: Fasetowy wykres słupkowy z etykietami procentów niezależnymi dla każdego wykresu
Na przedstawionym obrazie etykiety procentów wynoszą 49% (pierwszy aspekt) i 51% (drugi aspekt).
Widziałem, this Question, gdzie rozwiązaniem jest agregowanie danych poza ggplot. Wolałbym tego nie robić, uważam, że jest to lepsze podejście.
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)
Gdzie jest zmienna PANEL udokumentowane? – jlhoward
@jlhoward Dzięki za pytanie o [zmienną panelu] (http://stackoverflow.com/questions/20622332/documentation-on-internal-variables-in-ggplot-esp-panel). – marbel
To interesujące podejście, ale zobacz komentarze Hadleya Wickhama na moje pytanie [tutaj] (http://www.stackoverflow.com/questions/20622332/). BTW, nie mam pojęcia, dlaczego twoja odpowiedź została zdementowana; to na pewno nie ja. – jlhoward