Top 20 ports - gross weight of goods handled in each port, by direction - mar_mg_aa_pwhd

Data - Eurostat

Info

Last observation: Annual: 2024 (N = 180)

First observation: Annual: 2005 (N = 93)

Last data update: 23 jul 2026, 23:02. Last compile: 24 jul 2026, 02:32

Structure

Rotterdam, Antwerp, Hamburg, Amsterdam, Marseille

Total Goods Handled

Code
mar_mg_aa_pwhd %>%
  filter(rep_mar %in% c("NL_0NLRTM", "BE_0BEANR", "DE_1DEHAM", "NL_0NLAMS", "FR_2FRMRS"),
         unit == "THS_T",
         direct == "TOTAL") %>%
  year_to_date %>%
  mutate(values = values/1000) %>%
  ggplot + geom_line(aes(x = date, y = values, color = Rep_mar)) +
  theme_minimal() +
  theme(legend.position = c(0.2, 0.75),
        legend.title = element_blank()) +
  scale_x_date(breaks = as.Date(paste0(seq(2005, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Gross weight of goods handled (million tonnes)")

Rotterdam

Inwards vs. Outwards

Code
mar_mg_aa_pwhd %>%
  filter(rep_mar == "NL_0NLRTM",
         unit == "THS_T",
         direct %in% c("IN", "OUT")) %>%
  year_to_date %>%
  mutate(values = values/1000) %>%
  ggplot + geom_line(aes(x = date, y = values, color = Direct)) +
  theme_minimal() +
  theme(legend.position = c(0.75, 0.85),
        legend.title = element_blank()) +
  scale_x_date(breaks = as.Date(paste0(seq(2005, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Gross weight of goods handled (million tonnes)")

Conteneurs

Table

Code
mar_mg_aa_pwhd %>%
  filter(unit == "THS_T",
         time == "2019") %>%
  
  
  select(rep_mar, Rep_mar, Direct, values) %>%
  spread(Direct, values) %>%
  {if (is_html_output()) datatable(., filter = 'top', rownames = F, escape = F) else .}