Here is a start, cribbed from here.. There may well be an easier way.
library(ggplot2)
test <- read.csv("~/R/Play/Dummy.csv")
ggplot(test) +
geom_bar(mapping = aes(x = interaction(date,genre, lex.order = TRUE), fill = group, color = group),
position = "fill") +
geom_segment(mapping = aes(x=x,y=y, xend=xend, yend= yend),
data = data.frame(x=2.5, xend=2.5, y =0, yend = -0.2)) +
labs(y = "Count") +
theme_bw() +
theme(legend.justification = c(1, 0),
plot.margin = unit(c(1, 1, 4, 1), "lines"),
axis.title.x = element_blank(),
axis.text.x = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank()) +
annotate(geom = "text", x = 1:4, y = -0.05, label = c("diary", "journal", "diary", "journal"), size = 4) +
annotate(geom = "text", x = c(1.5, 3.5), y = -0.15, label = c("1778", "1782"), size = 6) +
coord_cartesian(ylim = c(-0.2, 1.1), expand = FALSE, clip = "off")

Created on 2021-01-25 by the reprex package (v0.2.1)