# Pastebin r8IX92rx # Load ggplot2 library(tidyverse) data <- tribble( ~id, ~value, ~A, ~B, "a", 1, "A1", "B1", "b", 2, "A1", "B1", "c", 3, "A1", "B1", "d", 4, "A1", "B1", "e", 5, "A1", "B1", "a", 5, "A1", "B2", "b", 4, "A1", "B2", "c", 3, "A1", "B2", "d", 2, "A1", "B2", "e", 1, "A1", "B2", "a", 1, "A2", "B1", "b", 5, "A2", "B1", "c", 2, "A2", "B1", "d", 4, "A2", "B1", "e", 3, "A2", "B1", "a", 3, "A2", "B2", "b", 4, "A2", "B2", "c", 2, "A2", "B2", "d", 5, "A2", "B2", "e", 1, "A2", "B2", ) data <- data %>% mutate(A=factor(A),B=factor(B)) p<-ggplot(data, aes(x=id, y=value)) + theme( strip.background = element_blank(), strip.placement = "outside", strip.text.y = element_text(angle = 180,vjust=.5), )+ geom_point() + facet_grid(vars(A),vars(B),switch="both") p