This is the closest I could get. Other people may know a way to do better.
library(ggplot2)
DF <- read.csv("c:/users/fxcampos/Documents/R/Play/Dummy.csv", sep = "\t",
stringsAsFactors = FALSE)
DF$Month <- factor(DF$Month, levels = c("June","July", "Aug", "Sep", "Oct", "Nov", "Dec",
"Jan", "Feb", "March", "April", "May"), ordered = TRUE)
DF$Season <- rep(c("Summer", "Fall", "Winter", "Spring"), each = 3)
DF$Season <- factor(DF$Season, levels = c("Summer", "Fall", "Winter", "Spring"))
head(DF)
#> Month season POC sd_min sd_max Season
#> 1 June SouthwestMonsoon 103.7802 88.12419 119.4363 Summer
#> 2 July SouthwestMonsoon 161.7999 139.89017 183.7097 Summer
#> 3 Aug SouthwestMonsoon 147.8307 126.06041 169.6010 Summer
#> 4 Sep SouthwestMonsoon 151.1334 137.65846 164.6084 Fall
#> 5 Oct PostMonsoon 155.3260 145.19713 165.4548 Fall
#> 6 Nov PostMonsoon 169.3289 151.29907 187.3588 Fall
ggplot(DF, aes(x = Month, y = POC, group = 1)) + geom_line() + geom_point() +
geom_errorbar(aes(ymax = sd_max, ymin = sd_min), width = 0.25) +
# coord_cartesian(ylim = c(0.95 * min(DF$sd_min), 1.05 * max(DF$sd_max)),
# expand = FALSE, clip = "off")+
facet_wrap( ~ Season, strip.position = "bottom", scales = "free_x", nrow = 1) +
theme(panel.spacing.x = unit(0, "lines"),
strip.background = element_blank(),
strip.placement = "outside",
panel.background = element_blank())

Created on 2020-05-08 by the reprex package (v0.3.0)