Exchange Rates

Data - BIS

Info

source dataset .html .RData
bis XRU 2024-12-16 2024-12-16
bis XRU_D 2024-12-16 2024-12-16

Data on xrates

source dataset .html .RData
bdf EXR 2024-12-13 2024-12-13
bis EER 2024-12-16 2024-12-16
bis EER_D 2024-11-18 2024-05-10
bis XRU 2024-12-16 2024-12-16
bis XRU_D 2024-12-16 2024-12-16
ecb EXR 2024-12-16 2024-12-16
eurostat ert_bil_eur_d 2024-12-16 2024-12-16
eurostat ert_h_eur_d 2024-12-16 2024-12-16
fred xrates 2024-12-16 2024-12-16
gfd xrates 2024-06-20 2021-01-08
oecd REFSERIES_MSIT 2024-09-15 2024-12-14
oecd SNA_TABLE4 2024-09-15 2024-12-14
wdi PA.NUS.FCRF 2024-12-14 2024-12-14

LAST_COMPILE

LAST_COMPILE
2024-12-16

Last

date Nobs
2023-12-01 330

iso3c, iso2c, Reference area

Code
XRU %>%
  arrange(iso3c, date) %>%
  group_by(iso3c, iso2c, `Reference area`, FREQ) %>%
  summarise(Nobs = n(),
            start = first(date),
            end = last(date)) %>%
  arrange(-Nobs) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  mutate(html = paste0('<a  target=_blank href=XRU.html#', gsub(" ", "_", `Reference area`), '> Link </a>')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

COLLECTION, Collection

Code
XRU %>%
  group_by(COLLECTION, Collection) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
COLLECTION Collection Nobs
A Average of observations through period 246736
E End of period 244648

FREQ, Frequency

Code
XRU %>%
  group_by(FREQ, Frequency) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) print_table(.) else .}
FREQ Frequency Nobs
M Monthly 346773
Q Quarterly 115662
A Annual 28949

CURRENCY

Code
XRU %>%
  group_by(CURRENCY, Currency) %>%
  summarise(Nobs = n()) %>%
  arrange(-Nobs) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F) else .}

Dollar ($), Euro (€), Pound (£)

2020

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(date == as.Date("2020-01-01")) %>%
  group_by(iso2c,  iso3c,`Reference area`, Currency) %>%
  summarise(`$1=` = value[1]) %>%
  as_tibble %>%
  ungroup %>%
  mutate(`1€=` = `$1=`/`$1=`[iso2c == "FR"],
         `£1=` = `$1=`/`$1=`[iso2c == "GB"]) %>%
  mutate_at(vars(`$1=`, `1€=`, `£1=`), funs(round(., 2))) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

2010

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(date == as.Date("2010-01-01")) %>%
     group_by(iso2c,  iso3c,`Reference area`, Currency) %>%
  summarise(`$1=` = value[1]) %>%
  as_tibble %>%
  ungroup %>%
  mutate(`1€=` = `$1=`/`$1=`[iso2c == "FR"],
         `£1=` = `$1=`/`$1=`[iso2c == "GB"]) %>%
  mutate_at(vars(`$1=`, `1€=`, `£1=`), funs(round(., 2))) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

2000

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(date == as.Date("2000-01-01")) %>%
     group_by(iso2c,  iso3c,`Reference area`, Currency) %>%
  summarise(`$1=` = value[1]) %>%
  as_tibble %>%
  ungroup %>%
  mutate(`1€=` = `$1=`/`$1=`[iso2c == "FR"],
         `£1=` = `$1=`/`$1=`[iso2c == "GB"]) %>%
  mutate_at(vars(`$1=`, `1€=`, `£1=`), funs(round(., 2))) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

1990

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(date == as.Date("1990-01-01")) %>%
     group_by(iso2c,  iso3c,`Reference area`, Currency) %>%
  summarise(`$1=` = value[1]) %>%
  as_tibble %>%
  ungroup %>%
  mutate(`1€=` = `$1=`/`$1=`[iso2c == "FR"],
         `£1=` = `$1=`/`$1=`[iso2c == "GB"]) %>%
  mutate_at(vars(`$1=`, `1€=`, `£1=`), funs(round(., 2))) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

1980

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(date == as.Date("1980-01-01")) %>%
     group_by(iso2c,  iso3c,`Reference area`, Currency) %>%
  summarise(`$1=` = value[1]) %>%
  as_tibble %>%
  ungroup %>%
  mutate(`1€=` = `$1=`/`$1=`[iso2c == "FR"],
         `£1=` = `$1=`/`$1=`[iso2c == "GB"]) %>%
  mutate_at(vars(`$1=`, `1€=`, `£1=`), funs(round(., 2))) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

1970

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(date == as.Date("1970-01-01")) %>%
     group_by(iso2c,  iso3c,`Reference area`, Currency) %>%
  summarise(`$1=` = value[1]) %>%
  as_tibble %>%
  ungroup %>%
  mutate(`1€=` = `$1=`/`$1=`[iso2c == "FR"],
         `£1=` = `$1=`/`$1=`[iso2c == "GB"]) %>%
  mutate_at(vars(`$1=`, `1€=`, `£1=`), funs(round(., 2))) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

1960

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(date == as.Date("1960-01-01")) %>%
     group_by(iso2c,  iso3c,`Reference area`, Currency) %>%
  summarise(`$1=` = value[1]) %>%
  as_tibble %>%
  ungroup %>%
  mutate(`1€=` = `$1=`/`$1=`[iso2c == "FR"],
         `£1=` = `$1=`/`$1=`[iso2c == "GB"]) %>%
  mutate_at(vars(`$1=`, `1€=`, `£1=`), funs(round(., 2))) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

1950

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(date == as.Date("1950-01-01")) %>%
     group_by(iso2c,  iso3c,`Reference area`, Currency) %>%
  summarise(`$1=` = value[1]) %>%
  as_tibble %>%
  ungroup %>%
  mutate(`£1=` = `$1=`/`$1=`[iso2c == "GB"]) %>%
  mutate_at(vars(`$1=`, `£1=`), funs(round(., 2))) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

1940

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(date == as.Date("1940-01-01")) %>%
     group_by(iso2c,  iso3c,`Reference area`, Currency) %>%
  summarise(`$1=` = value[1]) %>%
  as_tibble %>%
  ungroup %>%
  mutate(`£1=` = `$1=`/`$1=`[iso2c == "GB"]) %>%
  mutate_at(vars(`$1=`, `£1=`), funs(round(., 2))) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

1930

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(date == as.Date("1930-01-01")) %>%
     group_by(iso2c,  iso3c,`Reference area`, Currency) %>%
  summarise(`$1=` = value[1]) %>%
  as_tibble %>%
  ungroup %>%
  mutate(`£1=` = `$1=`/`$1=`[iso2c == "GB"]) %>%
  mutate_at(vars(`$1=`, `£1=`), funs(round(., 2))) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

1940, 1960, 1980, 2000, 2020

Dollar ($)

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(year(date) %in% c(1940, 1960, 1980, 2000, 2020),
         month(date) == 1) %>%
  mutate(year = year(date)) %>%
  group_by(iso2c, `Reference area`, Currency, year) %>%
  summarise(value = round(value[1], 2)) %>%
  spread(year, value) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

Euro (€)

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(year(date) %in% c(1960, 1980, 2000, 2020),
         month(date) == 1) %>%
  mutate(year = year(date)) %>%
  group_by(iso2c, `Reference area`, Currency, year) %>%
  summarise(value = value[1]) %>%
  ungroup %>%
  group_by(year) %>%
  mutate(value = round(value/value[iso2c == "FR"], 2)) %>%
  spread(year, value) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

Pound (£)

Code
XRU %>%
  arrange(iso3c, date) %>%
  filter(year(date) %in% c(1960, 1980, 2000, 2020),
         month(date) == 1) %>%
  mutate(year = year(date)) %>%
  group_by(iso2c, `Reference area`, Currency, year) %>%
  summarise(value = value[1]) %>%
  ungroup %>%
  group_by(year) %>%
  mutate(value = round(value/value[iso2c == "FR"], 2)) %>%
  spread(year, value) %>%
  mutate(Flag = gsub(" ", "-", str_to_lower(`Reference area`)),
         Flag = paste0('<img src="../../bib/flags/vsmall/', Flag, '.png" alt="Flag">')) %>%
  select(Flag, everything()) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

Germany, France, Italy, Spain, Greece

Francs

All-

Code
XRU %>%
  filter(iso3c %in% c("DEU", "FRA", "ITA", "ESP", "GRC"),
         FREQ == "M",
         COLLECTION == "E") %>%
  select(date, value, `Reference area`) %>%
  group_by(date) %>%
  mutate(value = value/value[`Reference area` == "France"]) %>%
  left_join(colors, by = c("Reference area" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value, color = color)) + 
  theme_minimal() + xlab("") + ylab("1 FRF in National Currency") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 10, 0.2),
                     labels = dollar_format(accuracy = 0.1, prefix = "", suffix = "")) +
  scale_color_identity() + add_5flags +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Dollars

All-

Code
XRU %>%
  filter(iso3c %in% c("DEU", "FRA", "ITA", "ESP", "GRC"),
         FREQ == "M",
         COLLECTION == "E") %>%
  left_join(colors, by = c("Reference area" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value, color = color)) + 
  theme_minimal() + xlab("") + ylab("1 USD in National Currency") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 10, 0.2),
                     labels = dollar_format(accuracy = 0.1, prefix = "", suffix = "")) +
  scale_color_identity() + add_5flags +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

All-1987

Code
XRU %>%
  filter(iso3c %in% c("DEU", "FRA", "ITA", "ESP", "GRC"),
         FREQ == "M",
         COLLECTION == "E") %>%
  left_join(colors, by = c("Reference area" = "country")) %>%
  filter(date <= as.Date("1987-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value, color = color)) + 
  theme_minimal() + xlab("") + ylab("1 USD in National Currency") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 10, 0.2),
                     labels = dollar_format(accuracy = 0.1, prefix = "", suffix = "")) +
  scale_color_identity() + add_5flags +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

1973-1987

Code
XRU %>%
  filter(iso3c %in% c("DEU", "FRA", "ITA", "ESP"),
         FREQ == "M",
         COLLECTION == "E") %>%
  left_join(colors, by = c("Reference area" = "country")) %>%
  filter(date >= as.Date("1973-01-01"),
         date <= as.Date("1987-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value, color = color)) + 
  theme_minimal() + xlab("") + ylab("1 USD in National Currency") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 10, 0.2),
                     labels = dollar_format(accuracy = 0.1, prefix = "", suffix = "")) +
  scale_color_identity() + add_4flags +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

1970-

Code
XRU %>%
  filter(iso3c %in% c("DEU", "FRA", "ITA", "ESP", "GRC"),
         date >= as.Date("1970-01-01"),
         FREQ == "M",
         COLLECTION == "E") %>%
  left_join(colors, by = c("Reference area" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value, color = color)) + 
  theme_minimal() + xlab("") + ylab("1 USD in National Currency") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 10, 0.2),
                     labels = dollar_format(accuracy = 0.1, prefix = "", suffix = "../$")) +
  scale_color_identity() + add_5flags +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

1980-

Code
XRU %>%
  filter(iso3c %in% c("DEU", "FRA", "ITA", "ESP", "GRC"),
         date >= as.Date("1980-01-01"),
         FREQ == "M",
         COLLECTION == "E") %>%
  left_join(colors, by = c("Reference area" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value, color = color)) + 
  theme_minimal() + xlab("") + ylab("1 USD in National Currency") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 10, 0.2),
                     labels = dollar_format(accuracy = 0.1, prefix = "", suffix = "../$")) +
  scale_color_identity() + add_5flags +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Individual Countries (€)

Marocco / Germany

All

Code
XRU %>%
  filter(iso3c %in% c("MAR", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = MAR/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 3, 5, 10, 20, 30, 50, 100, 200, 500),
                labels = dollar_format(a = 1, p = "", su = " /€"))

1997-

Code
XRU %>%
  filter(iso3c %in% c("NGA", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1997-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = NGA/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 3, 5, 10, 20, 30, 50, 100, 200, 500),
                labels = dollar_format(a = 1, p = "", su = " /€"))

Nigeria / Germany

All

Code
XRU %>%
  filter(iso3c %in% c("NGA", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = NGA/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 3, 5, 10, 20, 30, 50, 100, 200, 500),
                labels = dollar_format(a = 1, p = "", su = " /€"))

2001-

Code
XRU %>%
  filter(iso3c %in% c("NGA", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2001-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = NGA/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(1, 2, 3, 5, 10, 20, 30, 50, 100, 200, 300, 400, 500),
                labels = dollar_format(a = 1, p = "", su = " /€"))

Romania / Germany

All

Code
XRU %>%
  filter(iso3c %in% c("ROU", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = ROU/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 1),
                labels = dollar_format(a = 1, p = "", su = " /€"))

1997-

Code
XRU %>%
  filter(iso3c %in% c("ROU", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1997-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = ROU/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, .1),
                labels = dollar_format(a = .1, p = "", su = " /€"))

2001-

Code
XRU %>%
  filter(iso3c %in% c("ROU", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2001-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = ROU/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, .1),
                labels = dollar_format(a = .1, p = "", su = " /€"))

Poland / Germany

All

Code
XRU %>%
  filter(iso3c %in% c("POL", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = POL/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 1),
                labels = dollar_format(a = 1, p = "", su = " /€"))

1997-

Code
XRU %>%
  filter(iso3c %in% c("POL", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1997-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = POL/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, .1),
                labels = dollar_format(a = .1, p = "", su = " /€"))

2015-

Code
XRU %>%
  filter(iso3c %in% c("POL", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2015-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = POL/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, .1),
                labels = dollar_format(a = .1, p = "", su = " /€"))

Croatia/ Germany

All

Code
XRU %>%
  filter(iso3c %in% c("HRV", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = HRV/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 1),
                labels = dollar_format(a = 1, p = "", su = " /€"))

1997-

Code
XRU %>%
  filter(iso3c %in% c("HRV", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1997-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = HRV/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, .1),
                labels = dollar_format(a = .1, p = "", su = " /€"))

Czech Republic / Germany

All

Code
XRU %>%
  filter(iso3c %in% c("CZE", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = CZE/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 1),
                labels = dollar_format(a = 1, p = "", su = " /€"))

1997-

Code
XRU %>%
  filter(iso3c %in% c("CZE", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1997-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = CZE/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 1),
                labels = dollar_format(a = 1, p = "", su = " /€"))

Sweden / Germany

All

Code
XRU %>%
  filter(iso3c %in% c("SWE", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = SWE/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 1),
                labels = dollar_format(a = 1, p = "", su = " /€"))

1997-

Code
XRU %>%
  filter(iso3c %in% c("SWE", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1997-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = SWE/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 0.5),
                labels = dollar_format(a = .1, p = "", su = " /€"))

United Kingdom / Germany

All

Code
XRU %>%
  filter(iso3c %in% c("GBR", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = GBR/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, .1),
                labels = dollar_format(a = .1, p = "", su = " /€"))

1990-

Code
XRU %>%
  filter(iso3c %in% c("GBR", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1990-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = GBR/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, .1),
                labels = dollar_format(a = .1, p = "", su = " /€"))

2000-

Code
XRU %>%
  filter(iso3c %in% c("GBR", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2000-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = GBR/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, .1),
                labels = dollar_format(a = .1, p = "", su = " /€"))

2010-

Code
XRU %>%
  filter(iso3c %in% c("GBR", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2010-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  na.omit %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = GBR/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, .05),
                labels = dollar_format(a = .01, p = "", su = " /€"))

Bulgaria / Germany

All

Code
XRU %>%
  filter(iso3c %in% c("BGR", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = BGR/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 1),
                labels = dollar_format(a = 1, p = "", su = " kr/€"))

1997-

Code
XRU %>%
  filter(iso3c %in% c("BGR", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1997-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = BGR/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 0.02),
                labels = dollar_format(a = 0.01, p = "", su = " /€"),
                limits = c(1.80, 2.1))

Denmark / Germany

All

Code
XRU %>%
  filter(iso3c %in% c("DNK", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = DNK/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 1),
                labels = dollar_format(a = 1, p = "", su = " kr/€"))

1980-1987

Code
XRU %>%
  filter(iso3c %in% c("DNK", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1980-01-01"),
         date <= as.Date("1987-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = DNK/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 0.1),
                labels = dollar_format(a = 0.1, p = "", su = " kr/€"))

1997-2020

Code
XRU %>%
  filter(iso3c %in% c("DNK", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1997-01-01"),
         date <= as.Date("2020-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = DNK/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(1, 9, 1),
                labels = dollar_format(a = 1, p = "", su = " kr/€"),
                limits = c(4, 9))

Iceland / Germany

All

Code
XRU %>%
  filter(iso3c %in% c("ISL", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = ISL/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 10, 1), seq(10, 100, 10), seq(100, 300, 50)),
                labels = dollar_format(a = 1, p = "", su = " ISK/€"))

2000-

Code
XRU %>%
  filter(iso3c %in% c("ISL", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2000-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = ISL/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 10, 1), seq(10, 100, 10), seq(100, 300, 10)),
                labels = dollar_format(a = 1, p = "", su = " ISK/€"))

2010-

Code
XRU %>%
  filter(iso3c %in% c("ISL", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2010-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = ISL/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 10, 1), seq(10, 100, 10), seq(100, 300, 10)),
                labels = dollar_format(a = 1, p = "", su = " ISK/€"))

2007-2011

Code
XRU %>%
  filter(iso3c %in% c("ISL", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2007-01-01"),
         date <= as.Date("2011-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = ISL/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 10, 1), seq(10, 100, 10), seq(100, 300, 10)),
                labels = dollar_format(a = 1, p = "", su = " ISK/€"))

F/€

Code
XRU %>%
  filter(iso3c %in% c("DNK", "DEU", "SWE", "NOR", "CHE"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1999-01-01")) %>%
  select(date, iso3c, `Reference area`, value) %>%
  group_by(date) %>%
  mutate(value =value/value[iso3c == "DEU"]) %>%
  filter(iso3c !="DEU") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value, linetype = `Reference area`, color = `Reference area`) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 1), seq(0.4, 2, 0.2)),
                labels = dollar_format(a = .1, p = "", su = " ../€"),
                limits = c(1, 14)) +
  scale_color_manual(values = viridis(5)[1:4]) +
  theme(legend.position = c(0.45, 0.95),
        legend.title= element_blank(),
        legend.direction = "horizontal")

All

Code
XRU %>%
  filter(iso3c %in% c("CHE", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = CHE/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 1), seq(0.5, 3, 0.1)),
                labels = dollar_format(a = .1, p = "", su = " F/€"))

1997-2020

Code
XRU %>%
  filter(iso3c %in% c("CHE", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1997-01-01"),
         date <= as.Date("2020-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = CHE/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 1), seq(0.5, 2, 0.1)),
                labels = dollar_format(a = .1, p = "", su = " F/€"))

2010-2020

Code
XRU %>%
  filter(iso3c %in% c("CHE", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2010-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = CHE/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 1), seq(0.5, 2, 0.1)),
                labels = dollar_format(a = .1, p = "", su = " F/€"))

Hungary / Germany (1990-2020)

All

Code
XRU %>%
  filter(iso3c %in% c("HUN", "DEU"),
         FREQ == "M",
         COLLECTION == "A", 
         date >= as.Date("1990-01-01"),
         date <= as.Date("2020-01-01")) %>%
  select(Collection, date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = HUN/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 20)),
                labels = dollar_format(a = 1, p = "", su = " Ft/€"))

All

Code
XRU %>%
  filter(iso3c %in% c("HUN", "DEU"),
         FREQ == "M",
         COLLECTION == "A", 
         date >= as.Date("2007-01-01"),
         date <= as.Date("2010-01-01")) %>%
  select(Collection, date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = HUN/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 20)),
                labels = dollar_format(a = 1, p = "", su = " Ft/€"))

Obs / Average

Code
XRU %>%
  filter(iso3c %in% c("HUN", "DEU"),
         FREQ == "M",
         date >= as.Date("1990-01-01"),
         date <= as.Date("2020-01-01")) %>%
  select(Collection, date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = HUN/DEU, color = Collection) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 20)),
                labels = dollar_format(a = 1, p = "", su = " Ft/€")) +
  scale_color_manual(values = viridis(3)[1:2]) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

France / Germany

All

Code
XRU %>%
  filter(iso3c %in% c("FRA", "DEU"),
         FREQ == "M",
         COLLECTION == "A") %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
                ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = FRA/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 0.1),
                labels = dollar_format(a = 0.1, p = "", su = " FF(€)/DM(€)"))

1979-1984

Code
XRU %>%
  filter(iso3c %in% c("FRA", "DEU"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1979-01-01"),
         date <= as.Date("1985-01-01")) %>%
  select(date, iso3c, value) %>%
  spread(iso3c, value) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = FRA/DEU) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 0.02),
                labels = dollar_format(a = 0.01, p = "", su = " F/D(€)"))

Individual Countries ($)

1 Euro in Dollar

All

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         COLLECTION == "A",
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = 1/value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " $/€"))

1990-2002

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         COLLECTION == "A",
         date <= as.Date("2002-01-01"),
         date >= as.Date("1992-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = 1/value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " $/€"))

1996-

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1996-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = 1/value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " $/€"))

2000-

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = 1/value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " $/€"))

2005-2011

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2005-01-01"),
         date <= as.Date("2012-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = 1/value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "$", su = " /€"))

2009-2014

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2009-01-01"),
         date <= as.Date("2014-12-31")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = 1/value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.05),
                labels = dollar_format(a = .01, p = "$", su = " / €"))

2009-2014 (Trichet)

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2009-01-01"),
         date <= as.Date("2014-12-31")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = 1/value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.05),
                labels = dollar_format(a = .01, p = "$", su = " / €")) + 
  geom_vline(xintercept = as.Date("2011-04-07"), linetype = "dashed", color = "black") + 
  geom_vline(xintercept = as.Date("2011-07-07"), linetype = "dashed", color = "black")

2010-2014 (Trichet)

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2010-01-01"),
         date <= as.Date("2014-12-31")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = 1/value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.05),
                labels = dollar_format(a = .01, p = "$", su = " / €")) + 
  geom_vline(xintercept = as.Date("2011-04-07"), linetype = "dashed", color = "black") + 
  geom_vline(xintercept = as.Date("2011-07-07"), linetype = "dashed", color = "black")

Vietnam

All

Code
XRU %>%
  filter(iso3c %in% c("VNM"),
         COLLECTION == "A",
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 10) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(0.001*c(1, 2, 3, 5, 8), 0.01*c(1, 2, 3, 5, 8), 0.1*c(1, 2, 3, 5, 8), c(1, 2, 3, 5, 8)),
                labels = dollar_format(a = 0.01, p = "", su = ""))

2000-

Code
XRU %>%
  filter(iso3c %in% c("VNM"),
         COLLECTION == "A",
         FREQ == "M",
         date >= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 25000, 1000), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 1, p = "", su = ""))

2010-

Code
XRU %>%
  filter(iso3c %in% c("VNM"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2010-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2021, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 25000, 1000), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 1, p = "", su = ""))

Brazil

All

Code
XRU %>%
  filter(iso3c %in% c("BRA"),
         COLLECTION == "A",
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 10) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(0.001*c(1, 2, 3, 5, 8), 0.01*c(1, 2, 3, 5, 8), 0.1*c(1, 2, 3, 5, 8), c(1, 2, 3, 5, 8)),
                labels = dollar_format(a = 0.01, p = "", su = ""))

2000-

Code
XRU %>%
  filter(iso3c %in% c("BRA"),
         COLLECTION == "A",
         date >= as.Date("2000-01-01"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(1, 10, 1),
                labels = dollar_format(a = 1, p = "", su = ""))

2010-

Code
XRU %>%
  filter(iso3c %in% c("BRA"),
         COLLECTION == "A",
         date >= as.Date("2010-01-01"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(1, 10, 1),
                labels = dollar_format(a = 1, p = "", su = ""))

1953-1970

Code
XRU %>%
  filter(iso3c %in% c("BRA"),
         COLLECTION == "A",
         date <= as.Date("1970-01-01"),
         FREQ == "M") %>%
  mutate(value = 100*value/value[1]) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(100, 300, 1000, 3000, 10000, 20000),
                labels = dollar_format(a = 1, p = "", su = ""))

1961-1980

Code
XRU %>%
  filter(iso3c %in% c("BRA"),
         COLLECTION == "A",
         date >= as.Date("1960-01-01"),
         date <= as.Date("1980-01-01"),
         FREQ == "M") %>%
  mutate(value = 100*value/value[1]) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(100, 300, 1000, 3000, 10000, 20000),
                labels = dollar_format(a = 1, p = "", su = ""))

Chile

All

Code
XRU %>%
  filter(iso3c %in% c("CHL"),
         COLLECTION == "A",
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 10) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(0.001*c(1, 2, 3, 5, 8), 0.01*c(1, 2, 3, 5, 8), 0.1*c(1, 2, 3, 5, 8), c(1, 2, 3, 5, 8),
                           c(10, 20, 30, 50, 80), c(100, 200, 300, 500, 800)),
                labels = dollar_format(a = 0.001, p = "", su = ""))

2000-

Code
XRU %>%
  filter(iso3c %in% c("CHL"),
         COLLECTION == "A",
         date >= as.Date("2000-01-01"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(1, 10, 1),
                labels = dollar_format(a = 1, p = "", su = ""))

2010-

Code
XRU %>%
  filter(iso3c %in% c("CHL"),
         COLLECTION == "A",
         date >= as.Date("2010-01-01"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(1, 10, 1),
                labels = dollar_format(a = 1, p = "", su = ""))

1953-1970

Code
XRU %>%
  filter(iso3c %in% c("CHL"),
         COLLECTION == "A",
         date <= as.Date("1970-01-01"),
         FREQ == "M") %>%
  mutate(value = 100*value/value[1]) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(100, 300, 1000, 3000, 10000, 20000),
                labels = dollar_format(a = 1, p = "", su = ""))

1961-1980

Code
XRU %>%
  filter(iso3c %in% c("CHL"),
         COLLECTION == "A",
         date >= as.Date("1960-01-01"),
         date <= as.Date("1980-01-01"),
         FREQ == "M") %>%
  mutate(value = 100*value/value[1]) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(100, 300, 1000, 3000, 10000, 20000, 50000, 100000, 200000, 1000000, 2000000, 5000000),
                labels = dollar_format(a = 1, p = "", su = ""))

1960-1970

Code
XRU %>%
  filter(iso3c %in% c("CHL"),
         COLLECTION == "A",
         date >= as.Date("1960-01-01"),
         date <= as.Date("1970-01-01"),
         FREQ == "M") %>%
  mutate(value = 100*value/value[1]) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(100, 1000, 100),
                labels = dollar_format(a = 1, p = "", su = ""))

Israel

All

Code
XRU %>%
  filter(iso3c %in% c("ISR"),
         COLLECTION == "A",
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 10) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(0.001*c(1, 2, 3, 5, 8), 0.01*c(1, 2, 3, 5, 8), 0.1*c(1, 2, 3, 5, 8), c(1, 2, 3, 5, 8)),
                labels = dollar_format(a = 0.01, p = "", su = ""))

1980-

Code
XRU %>%
  filter(iso3c %in% c("ISR"),
         COLLECTION == "A",
         FREQ == "M",
         date >= as.Date("1980-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(0.001*c(1, 2, 3, 5, 8), 0.01*c(1, 2, 3, 5, 8), 0.1*c(1, 2, 3, 5, 8), c(1, 2, 3, 5, 8)),
                labels = dollar_format(a = 0.01, p = "", su = ""))

1986-

Code
XRU %>%
  filter(iso3c %in% c("ISR"),
         COLLECTION == "A",
         FREQ == "M",
         date >= as.Date("1986-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.2), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

2000-

Code
XRU %>%
  filter(iso3c %in% c("ISR"),
         COLLECTION == "A",
         FREQ == "M",
         date >= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

2010-

Code
XRU %>%
  filter(iso3c %in% c("ISR"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2010-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2021, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

Hungary

All

Code
XRU %>%
  filter(iso3c %in% c("HUN"),
         COLLECTION == "A",
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 20) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

2010-2020

Code
XRU %>%
  filter(iso3c %in% c("HUN"),
         COLLECTION == "A",
         FREQ == "M",
         date >= as.Date("2008-01-01"),
         date <= as.Date("2010-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 20) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

Australia

All

Code
XRU %>%
  filter(iso3c %in% c("AUS"),
         COLLECTION == "A",
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 20) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

1980-

Code
XRU %>%
  filter(iso3c %in% c("AUS"),
         COLLECTION == "A",
         FREQ == "M",
         date >= as.Date("1980-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

2000-

Code
XRU %>%
  filter(iso3c %in% c("AUS"),
         COLLECTION == "A",
         FREQ == "M",
         date >= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

2010-

Code
XRU %>%
  filter(iso3c %in% c("AUS"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2010-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2021, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

New Zealand

All

Code
XRU %>%
  filter(iso3c %in% c("NZL"),
         COLLECTION == "A",
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 20) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

1980-

Code
XRU %>%
  filter(iso3c %in% c("NZL"),
         COLLECTION == "A",
         FREQ == "M",
         date >= as.Date("1980-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

2000-

Code
XRU %>%
  filter(iso3c %in% c("NZL"),
         COLLECTION == "A",
         FREQ == "M",
         date >= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

2010-

Code
XRU %>%
  filter(iso3c %in% c("NZL"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2010-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2021, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 8, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.1, p = "", su = ""))

Germany, France, Italy, Spain

Code
XRU %>%
  filter(iso3c %in% c("DEU", "FRA", "ITA", "ESP"),
         FREQ == "M") %>%
  ggplot(.) + geom_line(aes(x = date, y = value, color = `Reference area`, linetype = `Reference area`)) + 
  theme_minimal() + xlab("") + ylab("Exchange Rate ($1 = ? National Currency)") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 10, 0.2),
                     labels = dollar_format(a = 0.1, p = "", su = "../$")) +
  scale_color_manual(values = viridis(5)[1:4]) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Peru

All

Code
XRU %>%
  filter(iso3c %in% c("PER"),
         FREQ == "M") %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("Exchange Rate ($? = National Currency)") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 300, 10),
                     labels = dollar_format(a = 1, p = "", su = "../$")) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

2010-2020

Code
XRU %>%
  filter(iso3c %in% c("PER"),
         FREQ == "M",
         date >= as.Date("2010-01-01"),
         COLLECTION == "E") %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("Exchange Rate ($? = National Currency)") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 5, 0.1),
                     labels = dollar_format(a = .1, p = "", su = "../$")) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Colombia

All

Code
XRU %>%
  filter(iso3c %in% c("COL"),
         FREQ == "M") %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("Exchange Rate ($? = National Currency)") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(0.001*c(1, 2, 3, 5, 8), 0.01*c(1, 2, 3, 5, 8), 0.1*c(1, 2, 3, 5, 8), c(1, 2, 3, 5, 8),
                           c(10, 20, 30, 50, 80), c(100, 200, 300, 500, 800), c(1000, 2000, 3000, 5000, 8000),
                           c(10000, 20000, 30000), c(100000)),
                labels = dollar_format(a = 0.001, p = "", su = ""))

Code
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())
# List of 3
#  $ legend.title          : list()
#   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
#  $ legend.position       : chr "inside"
#  $ legend.position.inside: num [1:2] 0.8 0.8
#  - attr(*, "class")= chr [1:2] "theme" "gg"
#  - attr(*, "complete")= logi FALSE
#  - attr(*, "validate")= logi TRUE

1990-

Code
XRU %>%
  filter(iso3c %in% c("COL"),
         FREQ == "M",
         date >= as.Date("1990-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("Exchange Rate ($? = National Currency)") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(0.001*c(1, 2, 3, 5, 8), 0.01*c(1, 2, 3, 5, 8), 0.1*c(1, 2, 3, 5, 8), c(1, 2, 3, 5, 8),
                           c(10, 20, 30, 50, 80), c(100, 200, 300, 500, 800), c(1000, 2000, 3000, 4000, 5000, 8000),
                           c(10000, 20000, 30000), c(100000)),
                labels = dollar_format(a = 0.001, p = "", su = ""))

Code
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())
# List of 3
#  $ legend.title          : list()
#   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
#  $ legend.position       : chr "inside"
#  $ legend.position.inside: num [1:2] 0.8 0.8
#  - attr(*, "class")= chr [1:2] "theme" "gg"
#  - attr(*, "complete")= logi FALSE
#  - attr(*, "validate")= logi TRUE

2000-

Code
XRU %>%
  filter(iso3c %in% c("COL"),
         FREQ == "M",
         date >= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("Colombian peso (COP = COL$)") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(1000, 10000, 500),
                labels = dollar_format(a = 1, p = "", su = " COP/$"))

Code
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())
# List of 3
#  $ legend.title          : list()
#   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
#  $ legend.position       : chr "inside"
#  $ legend.position.inside: num [1:2] 0.8 0.8
#  - attr(*, "class")= chr [1:2] "theme" "gg"
#  - attr(*, "complete")= logi FALSE
#  - attr(*, "validate")= logi TRUE

Venezuela

All

Code
XRU %>%
  filter(iso3c %in% c("VEN"),
         FREQ == "M") %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("Exchange Rate ($? = National Currency)") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(0.001*c(1, 2, 3, 5, 8), 0.01*c(1, 2, 3, 5, 8), 0.1*c(1, 2, 3, 5, 8), c(1, 2, 3, 5, 8),
                           c(10, 20, 30, 50, 80), c(100, 200, 300, 500, 800), c(1000, 2000, 3000, 5000, 8000),
                           c(10000, 20000, 30000), c(100000)),
                labels = dollar_format(a = 0.001, p = "", su = ""))

Code
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())
# List of 3
#  $ legend.title          : list()
#   ..- attr(*, "class")= chr [1:2] "element_blank" "element"
#  $ legend.position       : chr "inside"
#  $ legend.position.inside: num [1:2] 0.8 0.8
#  - attr(*, "class")= chr [1:2] "theme" "gg"
#  - attr(*, "complete")= logi FALSE
#  - attr(*, "validate")= logi TRUE

1960-1990

Code
XRU %>%
  filter(iso3c %in% c("VEN"),
         FREQ == "M",
         date <= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("Exchange Rate ($? = National Currency)") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 1, 0.1), seq(0, 0.1, 0.01)),
                     labels = dollar_format(a = 0.01, p = "", su = "../$")) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

Argentina

1940-2020

Code
XRU %>%
  filter(iso3c %in% c("ARG"),
         FREQ == "M") %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("Exchange Rate ($? = National Currency)") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 300, 10),
                     labels = dollar_format(a = 1, p = "", su = "../$")) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

1980-2020

Code
XRU %>%
  filter(iso3c %in% c("ARG"),
         FREQ == "M",
         date >= as.Date("1980-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(1, 10, 1), seq(0, 300, 10)),
                     labels = dollar_format(a = 1, p = "", su = "../$")) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

1980-2005

Code
XRU %>%
  filter(iso3c %in% c("ARG"),
         FREQ == "M",
         date >= as.Date("1980-01-01"),
         date <= as.Date("2005-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(1, 10, 1), seq(0, 300, 10)),
                     labels = dollar_format(a = 1, p = "", su = "../$")) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

1990-2020

Code
XRU %>%
  filter(iso3c %in% c("ARG"),
         FREQ == "M",
         date >= as.Date("1990-01-01")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(1, 10, 1), seq(0, 300, 10)),
                     labels = dollar_format(a = 1, p = "", su = "../$")) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

UK

Code
XRU %>%
  filter(iso3c %in% c("GBR"),
         FREQ == "M") %>%
  ggplot(.) + geom_line(aes(x = date, y = value)) + 
  theme_minimal() + xlab("") + ylab("Exchange Rate ($? = National Currency)") +
  scale_x_date(breaks = seq(1700, 2100, 20) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.1, 2, 0.1),
                     labels = dollar_format(a = 0.1, p = "", su = "../$")) +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())

United States

Code
XRU %>%
  filter(iso3c %in% c("USA"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 1),
                labels = dollar_format(a = 1, p = ""))

Thailand

All

Code
XRU %>%
  filter(iso3c %in% c("THA"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 20000, 10),
                labels = dollar_format(a = 0.1, p = "", su = ""))

1975-

Code
XRU %>%
  filter(iso3c %in% c("THA"),
         FREQ == "M",
         date >= as.Date("1975-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 20000, 5),
                labels = dollar_format(a = 1, p = "", su = ""))

1995-

Code
XRU %>%
  filter(iso3c %in% c("THA"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1995-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 20000, 5),
                labels = dollar_format(a = 1, p = "", su = ""))

Hong Kong

Code
XRU %>%
  filter(iso3c %in% c("HKG"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 20000, 0.5),
                labels = dollar_format(a = 0.1, p = "", su = " HK$/$"))

Russia

All

Code
XRU %>%
  filter(iso3c %in% c("RUS"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 10, 1), seq(0, 200, 10)),
                labels = dollar_format(a = 0.1, p = "", su = " ru/$"))

Russia Currendcy Crisis: 1996-2000

Code
XRU %>%
  filter(iso3c %in% c("RUS"),
         FREQ == "M",
         date >= as.Date("1996-01-01"),
         date <= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 10, 1), seq(0, 200, 10)),
                labels = dollar_format(a = 0.1, p = "", su = " ru/$"))

Uruguay

All

Code
XRU %>%
  filter(iso3c %in% c("URY"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 10, 1), seq(0, 200, 10)),
                labels = dollar_format(a = 0.1, p = "", su = " ../$"))

1980-1985

Code
XRU %>%
  filter(iso3c %in% c("URY"),
         FREQ == "M",
         date >= as.Date("1980-01-01"),
         date <= as.Date("1985-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 1, 0.01)),
                labels = dollar_format(a = .01, p = "", su = " ../$"))

1996-2000

Code
XRU %>%
  filter(iso3c %in% c("URY"),
         FREQ == "M",
         date >= as.Date("1997-01-01"),
         date <= as.Date("2005-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 10, 1), seq(0, 200, 5)),
                labels = dollar_format(a = 1, p = "", su = " ../$"))

South Africa

Code
XRU %>%
  filter(iso3c %in% c("ZAF"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 20) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 20000, 1),
                labels = dollar_format(a = 0.1, p = "", su = " ../$"))

Portugal

Code
XRU %>%
  filter(iso3c %in% c("PRT"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 20) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 1, 0.1), seq(0, 0.1, 0.01)),
                labels = dollar_format(a = 0.01, p = "", su = " ../$"))

Algeria

All

Code
XRU %>%
  filter(iso3c %in% c("DZA"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 50), seq(50, 150, 10)),
                labels = dollar_format(a = 1, p = "", su = " دج/$"))

2000-

Code
XRU %>%
  filter(iso3c %in% c("DZA"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 200, 50), seq(50, 150, 10), 160, 180, 220, 240, 260),
                labels = dollar_format(a = 1, p = "", su = " دج/$")) + 
  geom_vline(xintercept = as.Date("1985-09-12"), linetype = "dashed", color = viridis(3)[2])

2010-

Code
XRU %>%
  filter(iso3c %in% c("DZA"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2010-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2023, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 200, 50), seq(50, 150, 10), 160, 180, 220, 240, 260),
                labels = dollar_format(a = 1, p = "", su = " دج/$")) + 
  geom_vline(xintercept = as.Date("1985-09-12"), linetype = "dashed", color = viridis(3)[2])

Japan

All

Code
XRU %>%
  filter(iso3c %in% c("JPN"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 50), seq(50, 150, 10)),
                labels = dollar_format(a = 1, p = "", su = " ¥/$"))

Plaza - September 22, 1985

Code
XRU %>%
  filter(iso3c %in% c("JPN"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1984-01-01"),
         date <= as.Date("1990-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 200, 50), seq(50, 150, 10), 160, 180, 220, 240, 260),
                labels = dollar_format(a = 1, p = "", su = " ¥/$")) + 
  geom_vline(xintercept = as.Date("1985-09-12"), linetype = "dashed", color = viridis(3)[2])

Since Plaza - 1984

Code
XRU %>%
  filter(iso3c %in% c("JPN"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("1984-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 200, 50), seq(50, 150, 10), 160, 180, 220, 240, 260),
                labels = dollar_format(a = 1, p = "", su = " ¥/$"))

Abenomics - 2010

Code
XRU %>%
  filter(iso3c %in% c("JPN"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2010-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 50), seq(50, 150, 10)),
                labels = dollar_format(a = 1, p = "", su = " ¥/$"))

Election Abe: December 16, 2012

Code
XRU %>%
  filter(iso3c %in% c("JPN"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2011-01-01"),
         date <= as.Date("2016-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 50), seq(50, 150, 10)),
                labels = dollar_format(a = 1, p = "", su = " ¥/$")) + 
  geom_vline(xintercept = as.Date("2012-12-16"), linetype = "dashed", color = viridis(3)[2])

China

All

Code
XRU %>%
  filter(iso3c %in% c("CHN"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 20, 1),
                labels = dollar_format(a = 1, p = "", su = " ¥/$"))

2007-

Code
XRU %>%
  filter(iso3c %in% c("CHN"),
         FREQ == "M",
         date >= as.Date("2007-01-01"),
         COLLECTION == "E") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 20, 0.2),
                labels = dollar_format(a = 0.1, p = "", su = " ¥/$"))

Denmark

Code
XRU %>%
  filter(iso3c %in% c("DNK"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 600, 1),
                labels = dollar_format(a = 1, p = "", su = " kr/$"))

Switzerland

F/$

Code
XRU %>%
  filter(iso3c %in% c("CHE"),
         FREQ == "M",
         COLLECTION == "A") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 1), seq(0.5, 1.5, 0.1)),
                labels = dollar_format(a = .1, p = "", su = " F/$"))

Germany

1953-2020

Code
XRU %>%
  filter(iso3c %in% c("DEU"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " €/$"))

1953-1972

Code
XRU %>%
  filter(iso3c %in% c("DEU"),
         FREQ == "M",
         date <= as.Date("1972-01-01"),
         COLLECTION == "E") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 2) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " €/$"))

France

All

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " €/$"))

2000-

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         date >= as.Date("2000-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " €/$"))

2009-2014

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         COLLECTION == "A",
         date >= as.Date("2009-01-01"),
         date <= as.Date("2014-12-31")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.02),
                labels = dollar_format(a = .01, p = "", su = " €/$"))

Euro area / France

United-States / France (2012-)

2012-

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         date >= as.Date("2012-01-01"),
         COLLECTION == "A") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.02),
                labels = dollar_format(a = .01, p = "", su = " €/$"))

2014-2016

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         date >= as.Date("2014-01-01"),
         date <= as.Date("2016-01-01"),
         COLLECTION == "A") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.02),
                labels = dollar_format(a = .01, p = "", su = " €/$"))

2019-2020

Code
XRU %>%
  filter(iso3c %in% c("FRA"),
         FREQ == "M",
         date >= as.Date("2018-01-01"),
         COLLECTION == "A") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = "6 months",
               labels = date_format("%b %y")) +
  scale_y_log10(breaks = seq(0.5, 2.5, 0.02),
                labels = dollar_format(a = .01, p = "", su = " €/$"))

Italy

Code
XRU %>%
  filter(iso3c %in% c("ITA"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.1, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " €/$"))

United Kingdom

All

Code
XRU %>%
  filter(iso3c %in% c("GBR"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 20) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.1, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " £/$"))

1950-

Code
XRU %>%
  filter(iso3c %in% c("GBR"),
         FREQ == "M",
         date >= as.Date("1950-01-01")) %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.1, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " £/$"))

Canada

All

Code
XRU %>%
  filter(iso3c %in% c("CAN"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.1, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " $C/$"))

End/average

Code
XRU %>%
  filter(iso3c %in% c("CAN"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value, color = Collection) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0.1, 2.5, 0.1),
                labels = dollar_format(a = .1, p = "", su = " $C/$")) +
  scale_color_manual(values = viridis(3)[1:2]) +
  theme(legend.position = c(0.25, 0.9),
        legend.title = element_blank())

Sweden

Code
XRU %>%
  filter(iso3c %in% c("SWE"),
         FREQ == "M") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1800, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(1, 15, 1),
                labels = dollar_format(a = .1, p = "", su = " kr/$"))

1985: Plaza Accords

Japan (1985-2020)

Code
XRU %>%
  filter(iso3c %in% c("JPN"),
         FREQ == "M",
         date >= as.Date("1985-01-01"),
         FREQ == "M",
         COLLECTION == "E") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 50), seq(50, 150, 10)),
                labels = dollar_format(a = 1, p = "", su = " ¥/$"))

Canada, Italy, Spain

Code
XRU %>%
  filter(iso3c %in% c("ITA", "CAN", "ESP"),
         date >= as.Date("1980-01-01"),
         date <= as.Date("1990-01-01"),
         FREQ == "M",
         COLLECTION == "E") %>%
  ggplot(.) + geom_line(aes(x = date, y = value, color = `Reference area`, linetype = `Reference area`)) + 
  theme_minimal() + xlab("") + ylab("National Currency Per USD") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 10, 0.2),
                     labels = dollar_format(accuracy = 0.1, prefix = "", suffix = "../$")) +
  scale_color_manual(values = viridis(5)[1:4]) +
  theme(legend.position = c(0.6, 0.1),
        legend.title = element_blank(),
        legend.direction = "horizontal")

Japan (1980-1990)

Code
XRU %>%
  filter(iso3c %in% c("JPN"),
         date >= as.Date("1980-01-01"),
         date <= as.Date("1990-01-01"),
         FREQ == "M",
         COLLECTION == "E") %>%
  ggplot(.) + geom_line() + theme_minimal() +
  aes(x = date, y = value) + xlab("") + ylab("") +
  scale_x_date(breaks = seq(1940, 2100, 1) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = c(seq(0, 600, 50), seq(50, 300, 10)),
                labels = dollar_format(a = 1, p = "", su = " ¥/$"))

UCLA - Econ 102 Graphs

Exchange Rates against US. Dollar (1950-2020)

Code
XRU %>%
  filter(iso3c %in% c("DEU", "FRA", "ITA", "GBR"),
         FREQ == "M",
         date >= as.Date("1950-01-01")) %>%
  left_join(colors, by = c("Reference area" = "country")) %>%
  ggplot(.) + geom_line(aes(x = date, y = value, color = color)) + 
  theme_minimal() + xlab("") + ylab("1 USD in National Currency") +
  scale_x_date(breaks = seq(1940, 2100, 5) %>% paste0("-01-01") %>% as.Date,
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 10, 0.2),
                     labels = dollar_format(accuracy = 0.1, prefix = "", suffix = "")) +
  scale_color_identity() + add_4flags +
  theme(legend.position = c(0.8, 0.80),
        legend.title = element_blank())