House price index (2015 = 100) - annual data - prc_hpi_a
Data - Eurostat
Info
Last observation: Annual: 2025 (N = 305)
First observation: Annual: 2005 (N = 120)
Last data update: 24 jul 2026, 00:19. Last compile: 24 jul 2026, 03:43
Structure
Purchase Total
France, Italy, Germany
Code
prc_hpi_a %>%
filter(purchase == "TOTAL",
geo %in% c("FR", "IT", "DE"),
unit == "I15_A_AVG") %>%
time_to_date %>%
ggplot() + geom_line() + theme_minimal() +
aes(x = date, y = values, color = Geo, linetype = Geo) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = seq(1920, 2100, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = seq(-100, 300, 10)) +
ylab("House Price Index") + xlab("")
Belgium, Denmark, Finland
Code
prc_hpi_a %>%
filter(purchase == "TOTAL",
geo %in% c("BE", "DK", "FI"),
unit == "I15_A_AVG") %>%
time_to_date %>%
ggplot() + geom_line() + theme_minimal() +
aes(x = date, y = values, color = Geo, linetype = Geo) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = seq(1920, 2100, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = seq(-100, 300, 10)) +
ylab("House Price Index") + xlab("")
All Series
France
Code
prc_hpi_a %>%
filter(geo %in% c("FR"),
unit == "I15_A_AVG") %>%
time_to_date %>%
ggplot() + geom_line() + theme_minimal() +
aes(x = date, y = values, color = Purchase, linetype = Purchase) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = seq(1920, 2100, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = seq(-100, 300, 10)) +
ylab("House Price Index") + xlab("")
Germany
Code
prc_hpi_a %>%
filter(geo %in% c("DE"),
unit == "I15_A_AVG") %>%
time_to_date %>%
ggplot() + geom_line() + theme_minimal() +
aes(x = date, y = values, color = Purchase, linetype = Purchase) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = seq(1920, 2100, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.35, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = seq(-100, 300, 10)) +
ylab("House Price Index") + xlab("")
Italy
Code
prc_hpi_a %>%
filter(geo %in% c("IT"),
unit == "I15_A_AVG") %>%
time_to_date %>%
ggplot() + geom_line() + theme_minimal() +
aes(x = date, y = values, color = Purchase, linetype = Purchase) +
scale_color_manual(values = viridis(4)[1:3]) +
scale_x_date(breaks = seq(1920, 2100, 1) %>% paste0("-01-01") %>% as.Date,
labels = date_format("%Y")) +
theme(legend.position = c(0.6, 0.9),
legend.title = element_blank()) +
scale_y_continuous(breaks = seq(-100, 300, 5)) +
ylab("House Price Index") + xlab("")