Top 5 ports for volume of containers - volume (in TEUs) of containers handled in each port - mar_qg_qm_pvh
Data - Eurostat
Info
Last observation: Quarterly: 2025Q3 (N = 40)
First observation: Quarterly: 2005Q1 (N = 8)
Last data update: 23 jul 2026, 22:14. Last compile: 24 jul 2026, 02:34
Structure
Container Volumes
Rotterdam, Hamburg, Algeciras, Valencia
Code
mar_qg_qm_pvh %>%
filter(unit == "THS_TEU",
rep_mar %in% c("NL_0NLRTM", "DE_1DEHAM", "ES_2ESALG", "ES_2ESVLC")) %>%
quarter_to_date %>%
ggplot + geom_line(aes(x = date, y = values, color = Rep_mar)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(2005, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = "right") +
xlab("") + ylab("Container volume (thousand TEU)") +
scale_y_continuous(labels = scales::comma_format())
Year-on-Year Growth Rate
Code
mar_qg_qm_pvh %>%
filter(unit == "RT4",
rep_mar %in% c("NL_0NLRTM", "DE_1DEHAM", "ES_2ESALG", "ES_2ESVLC")) %>%
quarter_to_date %>%
mutate(values = values/100) %>%
ggplot + geom_line(aes(x = date, y = values, color = Rep_mar)) +
theme_minimal() +
scale_x_date(breaks = as.Date(paste0(seq(2005, 2100, 2), "-01-01")),
labels = date_format("%Y")) +
theme(legend.position = "right") +
xlab("") + ylab("Container volume, growth rate y/y") +
scale_y_continuous(labels = scales::percent_format(accuracy = 1)) +
geom_hline(yintercept = 0, linetype = "dashed", color = "black")
Latest Quarter by Port
Code
latest_q <- mar_qg_qm_pvh %>%
filter(unit == "THS_TEU", !is.na(values)) %>%
summarise(m = max(time)) %>%
pull(m)
mar_qg_qm_pvh %>%
filter(unit == "THS_TEU",
time == latest_q) %>%
select(Rep_mar, values) %>%
arrange(-values) %>%
print_table_conditional()| Rep_mar | values |
|---|---|
| Rotterdam | 3584 |
| Antwerp-Bruges | 3080 |
| Hamburg | 2228 |
| Algeciras | 1504 |
| Valencia | 1440 |
| Bremerhaven | 1265 |
| Peiraias | 1105 |
| Gioia Tauro | 1038 |