Main indicators - share of renewable energy - nrg_ind_ren

Data - Eurostat

Info

Last observation: Annual: 2025 (N = 63)

First observation: Annual: 2004 (N = 140)

Last data update: 11 aoû 2026, 20:47. Last compile: 12 aoû 2026, 02:28

Structure

Renewable Energy Share, Overall

France, Germany, Spain, Sweden

Code
nrg_ind_ren |>
  filter(nrg_bal == "REN",
         geo %in% c("FR", "DE", "ES", "SE")) |>
  year_to_date() |>
  left_join(colors, by = c("Geo" = "country")) |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = color)) +
  theme_minimal() + scale_color_identity() + add_flags +
  scale_x_date(breaks = as.Date(paste0(seq(2000, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Share of renewable energy in gross final energy consumption") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

By Sector, France

Code
nrg_ind_ren |>
  filter(geo == "FR",
         nrg_bal %in% c("REN_ELC", "REN_HEAT_CL", "REN_TRA")) |>
  year_to_date() |>
  mutate(values = values/100) |>
  ggplot() + geom_line(aes(x = date, y = values, color = Nrg_bal)) +
  theme_minimal() +
  theme(legend.position = c(0.3, 0.85),
        legend.title = element_blank()) +
  scale_x_date(breaks = as.Date(paste0(seq(2000, 2100, 2), "-01-01")),
               labels = date_format("%Y")) +
  xlab("") + ylab("Share of renewable energy, France") +
  scale_y_continuous(labels = scales::percent_format(accuracy = 1))

Table

2020

Code
nrg_ind_ren |>
  filter(time == "2020") |>
  
  
  select(geo, Geo, Nrg_bal, values) |>
  spread(Nrg_bal, values) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         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 .}

2019

Code
nrg_ind_ren |>
  filter(time == "2019") |>


  select(geo, Geo, Nrg_bal, values) |>
  spread(Nrg_bal, values) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         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 .}

Latest

Code
latest_y <- nrg_ind_ren |>
  filter(nrg_bal == "REN", !is.na(values)) |>
  summarise(m = max(time)) |>
  pull(m)

nrg_ind_ren |>
  filter(time == latest_y) |>

  select(geo, Geo, Nrg_bal, values) |>
  spread(Nrg_bal, values) |>
  mutate(Flag = gsub(" ", "-", str_to_lower(Geo)),
         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 .}