Должна быть возможность репликации этого формата с использованием нескольких геом на основе одной таблицы, содержащей координаты, которые вас интересуют. Например, если у вас есть список того, куда должны идти вертикальные линии, вы можете использовать его для создания линий, прямоугольников и текста.
library(tidyverse)
df <- tribble( ~x, ~y, ~label,
115109, 200, "I",
636810, 200, "II",
1201712, 200, "III",
2125989, 200, "IV",
3180392, 200, "V",
3603910, 200, "VI",
4284460, 200, "VII",
5111252, 200, "VIII",
5612517, 200, "IX",
6205337, 200, "X",
6911620, 200, "XI",
7784117, 200, "XII",
8785421, 200, "XIII",
9639803, 200, "XIV",
10577615, 200, "XV",
11597293, 200, "XVI",
12597293, 200, "") # added to give end point for XVI
ggplot(df) +
geom_segment(aes(x = x, xend = x,
y = 0, yend = 200)) +
geom_rect(aes(xmin = x, xmax = lead(x),
ymin = y - 10, ymax = y + 10),
fill = "gray70", color = "black") +
geom_text(aes(x = (x + lead(x))/2,
y = y, label = label)) +
coord_cartesian(ylim = c(0, 230))