I am trying to add labels in ggplot2 bar graph.
ggplot(bank_train, aes(previous_outcome)) geom_bar(aes(fill = response))
scale_fill_manual(values = c("orange", "lightblue"))
Where bank_train is the name of the dataset that has a variable name as previous_outcome. And, response as of (yes or no).
The code above works fine, but I tried to add numbers inside the bar graph, but it gave me an incorrect graph.
Here is my attempt:
ggplot(bank_train, aes(previous_outcome)) geom_bar(aes(fill = response),stat = "identity")
geom_text(aes(label = count),position = position_stack(vjust= 0.5),
colour = "white", size = 5) scale_fill_manual(values = c("orange", "lightblue"))
my problem is understanding the geom_text.
Your help is greatly appreciated
CodePudding user response:
Use after_stat
to get the counts for the geom_text
label.
set.seed(2022)
n <- 100L
outcomes <- c("failure", "success", "nonexistent")
previous_outcome <- factor(sample(outcomes, n, TRUE), levels = outcomes)
response <- sample(c("yes", "no"))
bank_train <- data.frame(previous_outcome, response)
library(ggplot2)
#> Warning: package 'ggplot2' was built under R version 4.2.2
ggplot(bank_train, aes(previous_outcome, fill = response))
geom_bar()
geom_text(aes(label = after_stat(count)),
stat ='count', colour = "white", size = 5,
position = position_stack(vjust = 0.5))
scale_fill_manual(values = c("orange", "lightblue"))
labs(x = 'Previous Outcome', y = 'Count')
theme_bw()
Created on 2022-11-12 with reprex v2.0.2