Top 20 ports - volume (in TEUs) of containers handled in each port, by loading status (main ports) - mar_mg_am_pvh

Data - Eurostat

Info

Last observation: 2024 (N = 120)

First observation: 2005 (N = 64)

Last data update: 14 aoû 2026, 21:12. Last compile: 18 aoû 2026, 02:04

Structure

Top 20 Ports

Code
i_g("bib/industrie/top-20-ports.png")

Conteneurs

2019

Code
mar_mg_am_pvh |>
  filter(unit == "THS_TEU",
         time == "2019",
         loadstat == "TOTAL") |>
  
  select(rep_mar, Rep_mar, values) |>
  arrange(-values) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

2020

Code
mar_mg_am_pvh |>
  filter(unit == "THS_TEU",
         time == "2020",
         loadstat == "TOTAL") |>
  
  select(rep_mar, Rep_mar, values) |>
  arrange(-values) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}

Marseille, Antwerpen, Hamburg, Rotterdam

Code
mar_mg_am_pvh |>
  
  filter(loadstat == "TOTAL",
         unit == "THS_TEU",
         Rep_mar %in% c("Rotterdam", "Antwerpen", "Hamburg", "Marseille")) |>
  year_to_date() |>
  mutate(values = values / 10^3) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Rep_mar)) +
     theme_minimal() + xlab("") + ylab("Volumes des conteneurs (Millions EVP)") +
  
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 20, 1))

FR_2FRMRS

Antwerpen, Hamburg, Rotterdam

Code
mar_mg_am_pvh |>
  
  filter(loadstat == "TOTAL",
         unit == "THS_TEU",
         Rep_mar %in% c("Rotterdam", "Antwerpen", "Hamburg")) |>
  year_to_date() |>
  mutate(values = values / 10^3) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Rep_mar)) +
     theme_minimal() + xlab("") + ylab("Volumes des conteneurs (Millions EVP)") +
  
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 20, 1))

Peiraias, Valencia, Algeciras

Code
mar_mg_am_pvh |>
  
  filter(loadstat == "TOTAL",
         unit == "THS_TEU",
         Rep_mar %in% c("Peiraias", "Valencia", "Algeciras")) |>
  year_to_date() |>
  mutate(values = values / 10^3) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Rep_mar)) +
     theme_minimal() + xlab("") + ylab("Volumes des conteneurs (Millions EVP)") +
  
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 20, 1))

Bremerhaven, Felixstowe, Barcelona

Code
mar_mg_am_pvh |>
  
  filter(loadstat == "TOTAL",
         unit == "THS_TEU",
         Rep_mar %in% c("Bremerhaven", "Felixstowe", "Barcelona")) |>
  year_to_date() |>
  mutate(values = values / 10^3) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Rep_mar)) +
     theme_minimal() + xlab("") + ylab("Volumes des conteneurs (Millions EVP)") +
  
  theme(legend.position = c(0.1, 0.85),
        legend.title = element_blank()) +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 20, 1))

Ambarli, Gioia Tauro, Le Havre

Code
mar_mg_am_pvh |>
  
  filter(loadstat == "TOTAL",
         unit == "THS_TEU",
         Rep_mar %in% c("Ambarli", "Gioia Tauro", "Le Havre")) |>
  year_to_date() |>
  mutate(values = values / 10^3) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Rep_mar)) +
     theme_minimal() + xlab("") + ylab("Volumes des conteneurs (Millions EVP)") +
  
  theme(legend.position = c(0.1, 0.85),
        legend.title = element_blank()) +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 20, .5))

12 ports

Linear

Code
mar_mg_am_pvh |>
  
  filter(loadstat == "TOTAL",
         unit == "THS_TEU",
         Rep_mar %in% c("Rotterdam", "Antwerpen", "Hamburg",
                        "Peiraias", "Valencia", "Algeciras",
                        "Bremerhaven", "Felixstowe", "Barcelona",
                        "Ambarli", "Gioia Tauro", "Le Havre")) |>
  year_to_date() |>
  mutate(values = values / 10^3) |>
  mutate(Rep_mar = factor(Rep_mar, c("Rotterdam", "Antwerpen", "Hamburg",
                        "Peiraias", "Valencia", "Algeciras",
                        "Bremerhaven", "Felixstowe", "Barcelona",
                        "Ambarli", "Gioia Tauro", "Le Havre"))) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Rep_mar)) +
  theme_minimal() + xlab("") + ylab("Volumes des conteneurs (Millions EVP)") +
  #scale_color_manual(values = viridis(13)[1:12]) +
  theme(legend.title = element_blank()) +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_continuous(breaks = seq(0, 20, 1))

Log

Code
mar_mg_am_pvh |>
  
  filter(loadstat == "TOTAL",
         unit == "THS_TEU",
         Rep_mar %in% c("Rotterdam", "Antwerpen", "Hamburg",
                        "Peiraias", "Valencia", "Algeciras",
                        "Bremerhaven", "Felixstowe", "Barcelona",
                        "Ambarli", "Gioia Tauro", "Le Havre")) |>
  year_to_date() |>
  mutate(values = values / 10^3) |>
  mutate(Rep_mar = factor(Rep_mar, c("Rotterdam", "Antwerpen", "Hamburg",
                        "Peiraias", "Valencia", "Algeciras",
                        "Bremerhaven", "Felixstowe", "Barcelona",
                        "Ambarli", "Gioia Tauro", "Le Havre"))) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Rep_mar)) +
  theme_minimal() + xlab("") + ylab("Volumes des conteneurs (Millions EVP)") +
  #scale_color_manual(values = viridis(13)[1:12]) +
  theme(legend.title = element_blank()) +
  scale_x_date(breaks = seq(1940, 2100, 2) |> paste0("-01-01") |> as.Date(),
               labels = date_format("%Y")) +
  scale_y_log10(breaks = seq(0, 20, 1))