library(tidyverse)
counts <- as.data.frame(table(mtcars$gear))
counts %>% mutate(prop_per = round(Freq/sum(Freq),2)*100) -> data
data <- arrange(data,
desc(Var1))
data <- mutate(data,
x_start=as.numeric(as.character(Var1)),
x_end=as.numeric(as.character(Var1))-1,
y_start=cumsum(prop_per) - prop_per,
y_end=cumsum(prop_per),
proptext = paste0(prop_per,"%"))
ggplot(data=data,
mapping=aes(xmin=x_start,
xmax=x_end,
ymin=y_start,
ymax=y_end)) +
geom_rect(fill="orange") +
geom_text(mapping=aes(x=(x_start+x_end)/2, y=(y_start+y_end)/2,
label=proptext)) +
ylab("Proportion") +
xlab("different parts")
