About the Plot
You can see some Economist-style graphs here. By using R we can replicate one of these graphs as follows:

R Codes
R codes for this plot:
# Clear workspace:
rm(list = ls())
# Some colors have been used by The Economist:
economistColors <- c("#7b2713", "#eb9e84", "#00a4dc", "#f15a40", "#00526d")
my_colors1 <- c("#A8A9AD", "#5C92A1", "#6ED0F5", "#E7D3BA", "#822813", "#ED9176", "#EF5B3E")
my_colors2 <- ggthemes::economist_pal()(8)
# Show colors:
scales::show_col(c(economistColors, my_colors1, my_colors2))
# Load some R packages:
library(tidyverse)
library(lubridate)
# Load some data sets:
data("economics")
data("presidential")
# Prepare data for ploting:
presidential %>%
filter(name %in% c("Bush", "Clinton", "Obama")) -> some_presidents
time_start <- some_presidents$start
time_end <- some_presidents$end
economics %>%
filter(date >= min(time_start), date <= max(time_end)) %>%
mutate(pre_name = case_when(date >= time_start[1] & date < time_end[1] ~ "George H. Bush",
date >= time_start[2] & date < time_end[2] ~ "Bill Clinton",
date >= time_start[3] & date < time_end[3] ~ "George W. Bush",
date >= time_start[4] & date < time_end[4] ~ "Barack Obama")) -> economics_mini
economics_mini %>%
mutate(Year = year(date)) %>%
group_by(Year, pre_name) %>%
summarise(avg_unem = sum(unemploy) / 100) %>%
ungroup() %>%
filter(Year >= 1990, Year <= 2013) -> df_for_ploting
df_for_ploting %>%
group_by(pre_name) %>%
slice(which.min(Year)) %>%
ungroup() %>%
arrange(Year) %>%
pull(Year) -> year_min
df_for_ploting %>%
group_by(pre_name) %>%
slice(which.max(Year)) %>%
ungroup() %>%
arrange(Year) %>%
pull(Year) -> year_max
df_for_ploting %>%
group_by(pre_name) %>%
summarise(x_start = min(Year), x_end = max(Year)) %>%
ungroup() %>%
arrange(x_start) %>%
mutate(x_end = case_when(x_end == 2013 ~ x_end, TRUE ~ x_end - 1)) %>%
mutate(x_position = 0.5*(x_end + x_start), y_position = 1900) %>%
mutate(color = rep(c("#f15a40", "#00a4dc"), each = 1, time = 2), fontface = "bold.italic") -> df_text
h <- 0.5
party_color <- c("#eb9e84", "#7ad2f6")
col_color <- "#00526d"
my_font <- "Roboto Condensed"
label_on_x <- as.character(1990:2013)
label_on_x_adjusted <- case_when(label_on_x %in% c("1990", "2000") ~ label_on_x, TRUE ~ str_sub(label_on_x, 3, 4))
y_max <- 2000
alpha <- 0.02
library(extrafont)
theme_set(theme_minimal())
df_for_ploting %>%
ggplot(aes(Year, avg_unem)) +
geom_rect(aes(ymin = 0, ymax = y_max, xmin = year_min[1] - h, xmax = year_max[1] - h), fill = party_color[1], alpha = alpha) +
geom_rect(aes(ymin = 0, ymax = y_max, xmin = year_min[2] - h, xmax = year_max[2] - h), fill = party_color[2], alpha = alpha) +
geom_rect(aes(ymin = 0, ymax = y_max, xmin = year_min[3] - h, xmax = year_max[3] - h), fill = party_color[1], alpha = alpha) +
geom_rect(aes(ymin = 0, ymax = y_max, xmin = year_min[4] - h, xmax = year_max[4] + h), fill = party_color[2], alpha = alpha) +
geom_col(fill = col_color, width = 0.6) +
scale_y_continuous(expand = c(0, 0), breaks = seq(0, 2000, 250), position = "right", labels = scales::comma) +
scale_x_continuous(expand = c(0, 0), breaks = seq(1990, 2013, 1), labels = label_on_x_adjusted) +
theme(plot.margin = unit(rep(0.8, 4), "cm")) +
theme(text = element_text(family = my_font)) +
theme(panel.grid.major.x = element_blank(), panel.grid.minor.x = element_blank()) +
theme(panel.grid.minor.y = element_blank(), panel.grid.major.y = element_line(size = 1, color = "grey80")) +
labs(x = NULL, y = NULL, title = "Number of unemployed persons in the United States from 1990 to 2013",
subtitle = "All numbers are in thousands and US unemployment level increased to an average of 1.75 million people in 2010.",
caption = "Source: U.S. Bureau of Labor Statistics") +
geom_text(data = df_text, aes(x_position, y_position, label = pre_name),
color = df_text$color, fontface = df_text$fontface, size = 4, family = my_font) +
theme(plot.title = element_text(size = 20, color = "grey10")) +
theme(plot.subtitle = element_text(size = 12, color = "grey20")) +
theme(plot.caption = element_text(size = 10, color = "grey20")) +
theme(axis.text.x = element_text(size = 12, color = "grey20"), axis.text.y = element_text(size = 12, color = "grey20"))
library(grid)
grid.rect(x = 0.015, y = 0.93, hjust = 1, vjust = 0, gp = gpar(fill = "#e5001c", lwd = 0))
grid.rect(x = 1, y = 1 - 0.007 / 2, hjust = 1, vjust = 0, gp = gpar(fill = "#e5001c", lwd = 0))
LS0tDQp0aXRsZTogJ1UuUy4gVW5lbXBsb3ltZW50Jw0KYXV0aG9yOiAnQXV0aG9yOiBOZ3V5ZW4gQ2hpIER1bmcnDQpzdWJ0aXRsZTogIkRhaWx5IEdyYXBoIFNlcmllcyINCm91dHB1dDoNCiAgaHRtbF9kb2N1bWVudDogDQogICAgY29kZV9kb3dubG9hZDogdHJ1ZQ0KICAgICMgY29kZV9mb2xkaW5nOiBoaWRlDQogICAgaGlnaGxpZ2h0OiB6ZW5idXJuDQogICAgIyBudW1iZXJfc2VjdGlvbnM6IHllcw0KICAgIHRoZW1lOiAiZmxhdGx5Ig0KICAgIHRvYzogVFJVRQ0KICAgIHRvY19mbG9hdDogVFJVRQ0KLS0tDQoNCmBgYHtyIHNldHVwLGluY2x1ZGU9RkFMU0V9DQprbml0cjo6b3B0c19jaHVuayRzZXQoZWNobyA9IFRSVUUsIHdhcm5pbmcgPSBGQUxTRSwgbWVzc2FnZSA9IEZBTFNFLCBmaWcud2lkdGggPSAxMCwgZmlnLmhlaWdodCA9IDYpDQpgYGANCg0KDQojIEFib3V0IHRoZSBQbG90DQoNCllvdSBjYW4gc2VlIHNvbWUgRWNvbm9taXN0LXN0eWxlIGdyYXBocyBbaGVyZV0oaHR0cHM6Ly93d3cuY29uc3VsdGFudHNtaW5kLmNvbS8yMDE0LzAzLzI1L2dvb2QtZ3JhcGhzLz9mYmNsaWQ9SXdBUjI0MEFMdEZjMXlTdktLd2xoMTFPM2RTaWRHT0daOGJyWHdZYTdHaGxMTzZ0WW5fclZnWjc0SzQ1dykuIEJ5IHVzaW5nIFIgd2UgY2FuIHJlcGxpY2F0ZSBvbmUgb2YgdGhlc2UgZ3JhcGhzIGFzIGZvbGxvd3M6IA0KDQohW10oQzpcXFVzZXJzXFxBRE1JTlxEb2N1bWVudHNcXGVjb24xLmpwZykNCg0KIyBSIENvZGVzDQoNClIgY29kZXMgZm9yIHRoaXMgcGxvdDoNCg0KYGBge3IsIGV2YWw9RkFMU0V9DQojIENsZWFyIHdvcmtzcGFjZTogDQpybShsaXN0ID0gbHMoKSkNCg0KIyBTb21lIGNvbG9ycyBoYXZlIGJlZW4gdXNlZCBieSBUaGUgRWNvbm9taXN0OiANCmVjb25vbWlzdENvbG9ycyA8LSBjKCIjN2IyNzEzIiwgIiNlYjllODQiLCAiIzAwYTRkYyIsICIjZjE1YTQwIiwgIiMwMDUyNmQiKQ0KbXlfY29sb3JzMSA8LSBjKCIjQThBOUFEIiwgIiM1QzkyQTEiLCAiIzZFRDBGNSIsICIjRTdEM0JBIiwgIiM4MjI4MTMiLCAiI0VEOTE3NiIsICIjRUY1QjNFIikNCm15X2NvbG9yczIgPC0gZ2d0aGVtZXM6OmVjb25vbWlzdF9wYWwoKSg4KQ0KDQojIFNob3cgY29sb3JzOiANCg0Kc2NhbGVzOjpzaG93X2NvbChjKGVjb25vbWlzdENvbG9ycywgbXlfY29sb3JzMSwgbXlfY29sb3JzMikpDQoNCiMgTG9hZCBzb21lIFIgcGFja2FnZXM6IA0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KGx1YnJpZGF0ZSkNCg0KIyBMb2FkIHNvbWUgZGF0YSBzZXRzOiANCmRhdGEoImVjb25vbWljcyIpDQpkYXRhKCJwcmVzaWRlbnRpYWwiKQ0KDQojIFByZXBhcmUgZGF0YSBmb3IgcGxvdGluZzogDQoNCnByZXNpZGVudGlhbCAlPiUgDQogIGZpbHRlcihuYW1lICVpbiUgYygiQnVzaCIsICJDbGludG9uIiwgIk9iYW1hIikpIC0+IHNvbWVfcHJlc2lkZW50cyANCg0KdGltZV9zdGFydCA8LSBzb21lX3ByZXNpZGVudHMkc3RhcnQNCnRpbWVfZW5kIDwtIHNvbWVfcHJlc2lkZW50cyRlbmQNCg0KZWNvbm9taWNzICU+JSANCiAgZmlsdGVyKGRhdGUgPj0gbWluKHRpbWVfc3RhcnQpLCBkYXRlIDw9IG1heCh0aW1lX2VuZCkpICU+JSANCiAgbXV0YXRlKHByZV9uYW1lID0gY2FzZV93aGVuKGRhdGUgPj0gdGltZV9zdGFydFsxXSAmIGRhdGUgPCB0aW1lX2VuZFsxXSB+ICJHZW9yZ2UgSC4gQnVzaCIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSA+PSB0aW1lX3N0YXJ0WzJdICYgZGF0ZSA8IHRpbWVfZW5kWzJdIH4gIkJpbGwgQ2xpbnRvbiIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZSA+PSB0aW1lX3N0YXJ0WzNdICYgZGF0ZSA8IHRpbWVfZW5kWzNdIH4gIkdlb3JnZSBXLiBCdXNoIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRlID49IHRpbWVfc3RhcnRbNF0gJiBkYXRlIDwgdGltZV9lbmRbNF0gfiAiQmFyYWNrIE9iYW1hIikpIC0+IGVjb25vbWljc19taW5pDQoNCmVjb25vbWljc19taW5pICU+JSANCiAgbXV0YXRlKFllYXIgPSB5ZWFyKGRhdGUpKSAlPiUgDQogIGdyb3VwX2J5KFllYXIsIHByZV9uYW1lKSAlPiUgDQogIHN1bW1hcmlzZShhdmdfdW5lbSA9IHN1bSh1bmVtcGxveSkgLyAxMDApICU+JSANCiAgdW5ncm91cCgpICU+JSANCiAgZmlsdGVyKFllYXIgPj0gMTk5MCwgWWVhciA8PSAyMDEzKSAtPiBkZl9mb3JfcGxvdGluZyANCg0KZGZfZm9yX3Bsb3RpbmcgJT4lIA0KICBncm91cF9ieShwcmVfbmFtZSkgJT4lIA0KICBzbGljZSh3aGljaC5taW4oWWVhcikpICU+JSANCiAgdW5ncm91cCgpICU+JSANCiAgYXJyYW5nZShZZWFyKSAlPiUgDQogIHB1bGwoWWVhcikgLT4geWVhcl9taW4NCg0KZGZfZm9yX3Bsb3RpbmcgJT4lIA0KICBncm91cF9ieShwcmVfbmFtZSkgJT4lIA0KICBzbGljZSh3aGljaC5tYXgoWWVhcikpICU+JSANCiAgdW5ncm91cCgpICU+JSANCiAgYXJyYW5nZShZZWFyKSAlPiUgDQogIHB1bGwoWWVhcikgLT4geWVhcl9tYXgNCg0KDQpkZl9mb3JfcGxvdGluZyAlPiUgDQogIGdyb3VwX2J5KHByZV9uYW1lKSAlPiUgDQogIHN1bW1hcmlzZSh4X3N0YXJ0ID0gbWluKFllYXIpLCB4X2VuZCA9IG1heChZZWFyKSkgJT4lIA0KICB1bmdyb3VwKCkgJT4lIA0KICBhcnJhbmdlKHhfc3RhcnQpICU+JSANCiAgbXV0YXRlKHhfZW5kID0gY2FzZV93aGVuKHhfZW5kID09IDIwMTMgfiB4X2VuZCwgVFJVRSB+IHhfZW5kIC0gMSkpICU+JSANCiAgbXV0YXRlKHhfcG9zaXRpb24gPSAwLjUqKHhfZW5kICsgeF9zdGFydCksIHlfcG9zaXRpb24gPSAxOTAwKSAlPiUgDQogIG11dGF0ZShjb2xvciA9IHJlcChjKCIjZjE1YTQwIiwgIiMwMGE0ZGMiKSwgZWFjaCA9IDEsIHRpbWUgPSAyKSwgZm9udGZhY2UgPSAiYm9sZC5pdGFsaWMiKSAtPiBkZl90ZXh0DQoNCmggPC0gMC41DQpwYXJ0eV9jb2xvciA8LSBjKCIjZWI5ZTg0IiwgIiM3YWQyZjYiKQ0KY29sX2NvbG9yIDwtICIjMDA1MjZkIg0KbXlfZm9udCA8LSAiUm9ib3RvIENvbmRlbnNlZCINCmxhYmVsX29uX3ggPC0gYXMuY2hhcmFjdGVyKDE5OTA6MjAxMykNCmxhYmVsX29uX3hfYWRqdXN0ZWQgPC0gY2FzZV93aGVuKGxhYmVsX29uX3ggJWluJSBjKCIxOTkwIiwgIjIwMDAiKSB+IGxhYmVsX29uX3gsIFRSVUUgfiBzdHJfc3ViKGxhYmVsX29uX3gsIDMsIDQpKQ0KeV9tYXggPC0gMjAwMA0KYWxwaGEgPC0gMC4wMg0KDQpsaWJyYXJ5KGV4dHJhZm9udCkNCg0KdGhlbWVfc2V0KHRoZW1lX21pbmltYWwoKSkNCg0KZGZfZm9yX3Bsb3RpbmcgJT4lIA0KICBnZ3Bsb3QoYWVzKFllYXIsIGF2Z191bmVtKSkgKyANCiAgZ2VvbV9yZWN0KGFlcyh5bWluID0gMCwgeW1heCA9IHlfbWF4LCB4bWluID0geWVhcl9taW5bMV0gLSBoLCB4bWF4ID0geWVhcl9tYXhbMV0gLSBoKSwgZmlsbCA9IHBhcnR5X2NvbG9yWzFdLCBhbHBoYSA9IGFscGhhKSArIA0KICBnZW9tX3JlY3QoYWVzKHltaW4gPSAwLCB5bWF4ID0geV9tYXgsIHhtaW4gPSB5ZWFyX21pblsyXSAtIGgsIHhtYXggPSB5ZWFyX21heFsyXSAtIGgpLCBmaWxsID0gcGFydHlfY29sb3JbMl0sIGFscGhhID0gYWxwaGEpICsgDQogIGdlb21fcmVjdChhZXMoeW1pbiA9IDAsIHltYXggPSB5X21heCwgeG1pbiA9IHllYXJfbWluWzNdIC0gaCwgeG1heCA9IHllYXJfbWF4WzNdIC0gaCksIGZpbGwgPSBwYXJ0eV9jb2xvclsxXSwgYWxwaGEgPSBhbHBoYSkgKyANCiAgZ2VvbV9yZWN0KGFlcyh5bWluID0gMCwgeW1heCA9IHlfbWF4LCB4bWluID0geWVhcl9taW5bNF0gLSBoLCB4bWF4ID0geWVhcl9tYXhbNF0gKyBoKSwgZmlsbCA9IHBhcnR5X2NvbG9yWzJdLCBhbHBoYSA9IGFscGhhKSArIA0KICBnZW9tX2NvbChmaWxsID0gY29sX2NvbG9yLCB3aWR0aCA9IDAuNikgKyANCiAgc2NhbGVfeV9jb250aW51b3VzKGV4cGFuZCA9IGMoMCwgMCksIGJyZWFrcyA9IHNlcSgwLCAyMDAwLCAyNTApLCBwb3NpdGlvbiA9ICJyaWdodCIsIGxhYmVscyA9IHNjYWxlczo6Y29tbWEpICsgDQogIHNjYWxlX3hfY29udGludW91cyhleHBhbmQgPSBjKDAsIDApLCBicmVha3MgPSBzZXEoMTk5MCwgMjAxMywgMSksIGxhYmVscyA9IGxhYmVsX29uX3hfYWRqdXN0ZWQpICsgDQogIHRoZW1lKHBsb3QubWFyZ2luID0gdW5pdChyZXAoMC44LCA0KSwgImNtIikpICsgDQogIHRoZW1lKHRleHQgPSBlbGVtZW50X3RleHQoZmFtaWx5ID0gbXlfZm9udCkpICsgDQogIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IueCA9IGVsZW1lbnRfYmxhbmsoKSwgcGFuZWwuZ3JpZC5taW5vci54ID0gZWxlbWVudF9ibGFuaygpKSArIA0KICB0aGVtZShwYW5lbC5ncmlkLm1pbm9yLnkgPSBlbGVtZW50X2JsYW5rKCksIHBhbmVsLmdyaWQubWFqb3IueSA9IGVsZW1lbnRfbGluZShzaXplID0gMSwgY29sb3IgPSAiZ3JleTgwIikpICsgDQogIGxhYnMoeCA9IE5VTEwsIHkgPSBOVUxMLCB0aXRsZSA9ICJOdW1iZXIgb2YgdW5lbXBsb3llZCBwZXJzb25zIGluIHRoZSBVbml0ZWQgU3RhdGVzIGZyb20gMTk5MCB0byAyMDEzIiwgDQogICAgICAgc3VidGl0bGUgPSAiQWxsIG51bWJlcnMgYXJlIGluIHRob3VzYW5kcyBhbmQgVVMgdW5lbXBsb3ltZW50IGxldmVsIGluY3JlYXNlZCB0byBhbiBhdmVyYWdlIG9mIDEuNzUgbWlsbGlvbiBwZW9wbGUgaW4gMjAxMC4iLCANCiAgICAgICBjYXB0aW9uID0gIlNvdXJjZTogVS5TLiBCdXJlYXUgb2YgTGFib3IgU3RhdGlzdGljcyIpICsgDQogIGdlb21fdGV4dChkYXRhID0gZGZfdGV4dCwgYWVzKHhfcG9zaXRpb24sIHlfcG9zaXRpb24sIGxhYmVsID0gcHJlX25hbWUpLCANCiAgICAgICAgICAgIGNvbG9yID0gZGZfdGV4dCRjb2xvciwgZm9udGZhY2UgPSBkZl90ZXh0JGZvbnRmYWNlLCBzaXplID0gNCwgZmFtaWx5ID0gbXlfZm9udCkgKyANCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMjAsIGNvbG9yID0gImdyZXkxMCIpKSArIA0KICB0aGVtZShwbG90LnN1YnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMiwgY29sb3IgPSAiZ3JleTIwIikpICsgDQogIHRoZW1lKHBsb3QuY2FwdGlvbiA9IGVsZW1lbnRfdGV4dChzaXplID0gMTAsIGNvbG9yID0gImdyZXkyMCIpKSArIA0KICB0aGVtZShheGlzLnRleHQueCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIsIGNvbG9yID0gImdyZXkyMCIpLCBheGlzLnRleHQueSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTIsIGNvbG9yID0gImdyZXkyMCIpKSANCg0KDQpsaWJyYXJ5KGdyaWQpDQpncmlkLnJlY3QoeCA9IDAuMDE1LCB5ID0gMC45MywgaGp1c3QgPSAxLCB2anVzdCA9IDAsIGdwID0gZ3BhcihmaWxsID0gIiNlNTAwMWMiLCBsd2QgPSAwKSkgIA0KZ3JpZC5yZWN0KHggPSAxLCB5ID0gMSAtIDAuMDA3IC8gMiwgaGp1c3QgPSAxLCB2anVzdCA9IDAsICBncCA9IGdwYXIoZmlsbCA9ICIjZTUwMDFjIiwgbHdkID0gMCkpIA0KDQoNCg0KDQoNCg0KDQoNCmBgYA0KDQo=