Use facet_grid(~ person, scales = "free_x")
library(tidyverse)
div10 <- data.frame(
stringsAsFactors = FALSE,
person = c("1.oo","1.xx","1.oo","1.xx",
"1.xx","1.oo","1.xx","1.oo","1.xx","1.xx","1.oo",
"1.xx","1.oo","1.xx","1.xx","2.oo","2.xx","2.oo",
"2.xx","2.xx","2.oo","2.xx","2.oo","2.xx","2.xx",
"2.oo","2.xx","2.oo","2.xx","2.xx","3.oo","3.xx",
"3.oo","3.xx","3.xx","3.oo","3.xx","3.oo","3.xx",
"3.xx","3.oo","3.xx","3.oo","3.xx","3.xx","4.oo",
"4.xx","4.oo","4.xx","4.xx","4.oo","4.xx","4.oo","4.xx",
"4.xx","4.oo","4.xx","4.oo","4.xx","4.xx","5.oo",
"5.xx","5.oo","5.xx","5.xx","5.oo","5.xx","5.oo",
"5.xx","5.xx","5.oo","5.xx","5.oo","5.xx","5.xx",
"6.oo","6.xx","6.oo","6.xx","6.xx","6.oo","6.xx",
"6.oo","6.xx","6.xx","6.oo","6.xx","6.oo","6.xx",
"6.xx"),
variable = c("A","A","A","A","A","B",
"B","B","B","B","C","C","C","C","C","A","A","A",
"A","A","B","B","B","B","B","C","C","C","C",
"C","A","A","A","A","A","B","B","B","B","B",
"C","C","C","C","C","A","A","A","A","A","B","B",
"B","B","B","C","C","C","C","C","A","A","A",
"A","A","B","B","B","B","B","C","C","C","C","C",
"A","A","A","A","A","B","B","B","B","B","C",
"C","C","C","C"),
cat = c("a","a","b","b","c","a",
"a","b","b","c","a","a","b","b","c","a","a","b",
"b","c","a","a","b","b","c","a","a","b","b",
"c","a","a","b","b","c","a","a","b","b","c",
"a","a","b","b","c","a","a","b","b","c","a","a",
"b","b","c","a","a","b","b","c","a","a","b",
"b","c","a","a","b","b","c","a","a","b","b","c",
"a","a","b","b","c","a","a","b","b","c","a",
"a","b","b","c"),
value = c(92,10,7,1,17,2,5,0,0,5,
19,5,1,0,6,3,0,1,0,8,0,0,0,0,4,0,0,0,
0,3,2,0,0,2,10,0,0,0,0,1,1,0,0,0,6,64,2,
19,3,5,16,5,7,0,2,16,2,0,2,0,10,0,0,0,
0,3,0,0,0,0,1,0,0,0,0,3,0,0,1,0,13,6,5,
0,4,2,3,0,0,0)
)
ggplot(div10, aes(x = cat, y = value, fill = variable)) +
geom_col(width = 1,
colour = "black",
position = position_stack(reverse = TRUE)) +
facet_grid(~ person, scales = "free_x") +
xlab("Type") +
ylab("amount") +
scale_fill_manual(values = c("dimgrey", "deepskyblue", "blue")) +
scale_y_continuous(breaks = c(0,20,40,60,80,100,120)) +
theme(axis.text.x = element_text(angle = 90, vjust = 0, hjust = 1),
legend.position="bottom", legend.title = element_blank(),
panel.grid.major.x = element_blank(),
panel.background = element_blank(),
panel.spacing.x = unit(0,"lines"),
panel.grid = element_line(size = 0.2,
linetype = 'solid',
colour = "grey"))
Created on 2020-10-29 by the reprex package (v0.3.0.9001)
NOTE: Next time please share your data in a copy/paste friendly format as explained here