Skip to content
Snippets Groups Projects
Commit 144c1632 authored by Peter-Paul Pichler's avatar Peter-Paul Pichler
Browse files

update figures (esp 5 and 2)

parent 7d524f8b
Branches
No related tags found
No related merge requests found
File added
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
No preview for this file type
......@@ -18,29 +18,16 @@ knitr::opts_chunk$set(
if (!require("pacman")) install.packages("pacman")
pacman::p_load(tidyverse,
janitor,
here,
wbstats,
ISOcodes,
viridis,
hrbrthemes,
wesanderson,
glue,
ggridges,
patchwork,
kableExtra,
readxl,
flextable)
readxl)
pal <- wes_palette("Cavalcanti1", 5, type = "discrete")
extrafont::loadfonts()
```
```{r libraries}
library(here)
```
```{r functions}
# load data wrangling functions
......@@ -222,7 +209,7 @@ knitr::include_graphics(here::here("analysis", "figures", "figure1.pdf"))
# Fig.2
```{r , fig.width=8, fig.height=2}
```{r , fig.width=8, fig.height=3}
pdat_basket = get_sector_summary_by_eu_ntile_direct(eu_q_count) %>%
ungroup() %>%
......@@ -257,21 +244,54 @@ pdat = pdat_int_co2eq %>%
bind_rows(pdat_int_energy) %>%
bind_rows(pdat_basket)
pdat$facet = factor(pdat$indicator, levels = c("Expenditure share (%)", "Energy intensity (MJ/€)", "Carbon intensity (kgCO2eq/€)"))
a = ggplot(pdat, aes(x=value, y=five_sectors, color=eu_q_rank)) +
p1 = pdat_basket %>%
mutate(Decile = if_else(eu_q_rank<10, paste0("D0", eu_q_rank), paste0("D", eu_q_rank))) %>%
ggplot(aes(x=value, y=five_sectors, color=Decile)) +
#geom_point(shape=18, alpha=0.75) +
geom_text(label="I", alpha=0.75, fontface="bold") +
scale_color_viridis(option = "A", end = 0.8,
direction = -1,
breaks = c(1, 5, 10),
discrete = T,
name="European\ndecile") +
facet_wrap(~facet, scales="free_x") +
theme_minimal() +
labs(x="",y="")+
theme(text=element_text(size=13, family="Liberation Sans Narrow"),
panel.spacing = unit(2.5, "lines"))
labs(x=unique(pdat_basket$indicator),y="")
p2 = pdat_int_energy %>%
mutate(Decile = if_else(eu_q_rank<10, paste0("D0", eu_q_rank), paste0("D", eu_q_rank))) %>%
ggplot(aes(x=value, y=five_sectors, color=Decile)) +
#geom_point(shape=18, alpha=0.75) +
geom_text(label="I", alpha=0.75, fontface="bold") +
scale_color_viridis(option = "A", end = 0.8,
direction = -1,
discrete = T,
name="European\ndecile") +
theme_minimal() +
labs(x=unique(pdat_int_energy$indicator),y="")
p3 = pdat_int_co2eq %>%
mutate(Decile = if_else(eu_q_rank<10, paste0("D0", eu_q_rank), paste0("D", eu_q_rank))) %>%
ggplot(aes(x=value, y=five_sectors, color=Decile)) +
#geom_point(shape=18, alpha=0.75) +
geom_text(label="I", alpha=0.75, fontface="bold") +
scale_color_viridis(option = "A", end = 0.8,
direction = -1,
discrete = T,
name="European\ndecile") +
theme_minimal() +
labs(x=unique(pdat_int_co2eq$indicator),y="")
#plot_annotation(tag_levels = 'a')
a = (p1 + p2 + p3) +
plot_layout(guides = "collect") +
plot_annotation(tag_levels = 'a') &
theme(legend.position = 'bottom',
text=element_text(family="Liberation Sans Narrow"),
axis.title.y = element_text(size=13, hjust = 0.5),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
legend.text = element_text(size=12),
legend.title = element_text(size=13))
ggsave(here("analysis", "figures", "figure2.pdf"), device=cairo_pdf)
```
......@@ -282,7 +302,7 @@ knitr::include_graphics(here::here("analysis", "figures", "figure2.pdf"))
# Fig.3
```{r , fig.width=8, fig.height=5}
```{r, fig.width=10, fig.height=6}
pdat = get_sector_summary_by_eu_ntile_direct(eu_q_count) %>%
ungroup() %>%
......@@ -309,13 +329,13 @@ p1 = ggplot(pdat %>% filter(indicator_type == "tCO2eq per adult eq"),
labels = c("D01","D02","D03","D04","D05","D06","D07","D08","D09","D10")) +
#theme_ipsum() +
theme_minimal() +
theme(text=element_text(family="Liberation Sans Narrow")) +
labs(x="", y="Carbon footprint tCO2eq per adult eq") +
theme(legend.position = "bottom",
axis.text.x = element_text(angle = 90, size = 12),
axis.text.y = element_text(size = 12),
strip.text = element_text(size = 12),
axis.title.y = element_text(size = 10))
labs(x="", y="Carbon footprint tCO2eq per adult eq")# +
# theme(legend.position = "bottom",
# text=element_text(family="Liberation Sans Narrow"),
# axis.text.x = element_text(angle = 90, size = 12),
# axis.text.y = element_text(size = 12),
# strip.text = element_text(size = 12),
# axis.title.y = element_text(size = 10))
p2 = ggplot(pdat %>% filter(indicator_type == "Energy GJ per adult eq"),
......@@ -327,22 +347,31 @@ p2 = ggplot(pdat %>% filter(indicator_type == "Energy GJ per adult eq"),
labels = c("D01","D02","D03","D04","D05","D06","D07","D08","D09","D10")) +
#theme_ipsum() +
theme_minimal() +
theme(text=element_text(family="Liberation Sans Narrow")) +
labs(x="", y="Energy footprint GJ per adult eq") +
theme(legend.position = "bottom",
axis.text.x = element_text(angle = 90, size = 12),
#theme(text=element_text(family="Liberation Sans Narrow")) +
labs(x="", y="Energy footprint GJ per adult eq") #+
# theme(legend.position = "bottom",
# axis.text.x = element_text(angle = 90, size = 12),
# axis.text.y = element_text(size = 12),
# strip.text = element_text(size = 12),
# axis.title.y = element_text(size = 10))
a = (p1 / p2) +
plot_layout(guides = "collect") &
theme(text=element_text(family="Liberation Sans Narrow"),
legend.position = "bottom",
axis.title.y = element_text(size=13, hjust = 0.5),
axis.text.x = element_text(angle = 90, size = 11),
axis.text.y = element_text(size = 12),
strip.text = element_text(size = 12),
axis.title.y = element_text(size = 10))
a = p1 / p2 + plot_layout(guides = "collect") & theme(legend.position = 'bottom',
legend.text = element_text(size=12),
strip.text = element_text(size = 13),
legend.title = element_text(size=13),
plot.margin = margin(1, 1, 1, 1, "mm"),
panel.spacing = unit(c(1, 1, 1, 1), "mm"))
hm = pdat %>% filter(indicator_type == "Energy GJ per adult eq") %>%
group_by(eu_q_rank) %>%
summarise(value = sum(value))
# hm = pdat %>% filter(indicator_type == "Energy GJ per adult eq") %>%
# group_by(eu_q_rank) %>%
# summarise(value = sum(value))
ggsave(here("analysis", "figures", "figure3.pdf"))
```
......@@ -455,9 +484,12 @@ map = ggplot() +
```{r fig.height=7, fig.width=11}
a = p1 + map + plot_annotation(tag_levels = 'a') +
theme(plot.margin = unit(c(0.25,0.25,0.25,0.25), "cm"),
theme(plot.margin = margin(1, 1, 1, 1, "mm"),
legend.position = 'bottom',
text=element_text(family="Liberation Sans Narrow"),
axis.title.y = element_text(size=13, hjust = 0.5),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
legend.text = element_text(size=12),
legend.title = element_text(size=13))
......@@ -502,12 +534,6 @@ df_energy_deciles = pdat_final_demand %>%
ineq_curr = df_energy_deciles$pae_energy_use_gj[10]/df_energy_deciles$pae_energy_use_gj[1]
```
```{r }
library(readxl)
df_scenario_info = read_excel(here("analysis/data/raw/scenarios.xlsx"), sheet="overview") %>%
select(scenario, fe_gj_aeu = final_energy_gj_per_aeu_2050,
ccs_required = primary_energy_fossil_w_ccs2050_ej,
......@@ -516,17 +542,15 @@ df_scenario_info = read_excel(here("analysis/data/raw/scenarios.xlsx"), sheet="o
mutate(fe_gj_aeu = round(fe_gj_aeu),
ccs_required = round(ccs_required))
mea = c(min(df_scenario_info$fe_gj_aeu),max(df_scenario_info$fe_gj_aeu))
mer = c(min(df_scenario_info$fe_gj_aeu),53)
mea_seq = c(df_scenario_info$fe_gj_aeu, seq(from=50, to=300, by=50))
#mea = c(16,300)
mer = c(16,60)
c_mean_mea = round((27+mea[2])/2)
c_mean_mer = round((mer[1]+mer[2])/2)
```
```{r , eval = FALSE}
# run once to save file. If changing scenarios included or input data, need to re-run and save 'scenarios_fine.rds'
```{r eval=FALSE, calc-scenarios}
# vectorized function that returns scaled quantiles given
#quantile index column and column with quantile averages
......@@ -534,6 +558,7 @@ c_mean_mer = round((mer[1]+mer[2])/2)
#qavg_to_scale: column to scale
#first_target: target value of first quantile
#mean_target: target mean of scaled quantiles
scaled_quantiles <- function(.data,
qidx,
qavg_to_scale,
......@@ -566,8 +591,8 @@ scaled_quantiles <- function(.data,
## run once to save file
df_all = NULL
for (min_energy in seq(from=mer[1], to=mer[2], by=0.25)) {
for (mean_energy in seq(from=mea[1], to=mea[2], by=0.25)) {
for (min_energy in seq(from=mer[1], to=mer[2], by=0.1)) {
for (mean_energy in mea_seq) {
if (min_energy <= mean_energy) {
df_all = df_all %>%
bind_rows(df_energy_deciles %>%
......@@ -576,14 +601,16 @@ for (min_energy in seq(from=mer[1], to=mer[2], by=0.25)) {
}
}
saveRDS(df_all, here("analysis/data/derived/scenarios_fine.rds"))
saveRDS(df_all, here("analysis/data/derived/scenarios_extrafine.rds"))
```
```{r , fig.width=7, fig.height=5.5}
```{r}
round_by = 10
df_all = readRDS(here("analysis/data/derived/scenarios_fine.rds")) %>%
df_all = readRDS(here("analysis/data/derived/scenarios_extrafine.rds")) %>%
filter(eu_q_rank %in% c(1,10)) %>%
group_by(v_mean, v_first) %>%
summarise(ratio = last(scaled)/first(scaled)) %>%
......@@ -594,41 +621,56 @@ df_all = readRDS(here("analysis/data/derived/scenarios_fine.rds")) %>%
summarise(v_mean = mean(v_mean)) %>%
mutate(bin_ratio = bin_ratio*0.01)
```
```{r, fig.width=7, fig.height=4}
df_grid = df_all %>%
filter(!(v_mean %in% df_scenario_info$fe_gj_aeu))
df_scenario = df_all %>%
filter(v_mean %in% df_scenario_info$fe_gj_aeu) %>%
left_join(df_scenario_info, by=c("v_mean"="fe_gj_aeu"))
library(wesanderson)
a = df_all %>%
ggplot(aes(x=v_first, y=bin_ratio, fill=v_mean)) +
geom_tile() +
geom_hline(yintercept = ineq_curr, alpha=0.8, color="grey", linetype=2) +
geom_line(data=df_scenario, aes(color=scenario, group=scenario)) +
annotate(geom="text", x=max(df_all$v_first)-5.7,y=ineq_curr+0.6,label = "Current (2015) 10:10 ratio") +
#scale_fill_viridis("Mean energy\navailable") +
scale_fill_gradient("Mean energy\navailable (GJ/ae)",
low=wes_palette("Chevalier1")[3],
high = wes_palette("Rushmore1")[4]) +
scale_color_manual(values=wes_palette("Darjeeling1")) +
filter((v_mean %in% df_scenario_info$fe_gj_aeu))
df_dle = tibble(bin_ratio = 1, v_first = 16, v_mean = 16)
scenario_label = df_scenario_info %>%
mutate(labl = paste0(scenario, " (", fe_gj_aeu, ")")) %>%
pull(labl)
library(ggsci)
a = df_grid %>%
ggplot(aes(x=v_first, y=bin_ratio, group=v_mean)) +
geom_smooth(aes(linetype="Maximum energy\nsupply (GJ/ae)"), se=FALSE, color="grey", size=0.5) +
scale_linetype_manual(name="", values = c(2)) +
geom_smooth(data=df_scenario, aes(color=factor(v_mean)), se=FALSE) +
geom_point(data=df_dle, aes(color=factor(v_mean))) +
geom_hline(yintercept = ineq_curr, color="grey") +
annotate(geom="text",x=56,y=12,label="300", angle=-35, size=3) +
annotate(geom="text",x=46,y=9.5,label="200", angle=-35, size=3) +
annotate(geom="text",x=33.5,y=6,label="100", angle=-35, size=3) +
#annotate(geom="text",x=16.5,y=13,label="- - - Maximum energy available (GJ/cap)", size=3, hjust=0) +
scale_color_npg(
name = "Scenario",
labels = scenario_label) +
lims(x=c(15.5,60), y=c(1,13)) +
labs(x= "Minimum energy use (GJ/ae)", y="Energy use inequality (10:10 ratio)") +
theme_minimal() +
labs(x="Minimum energy requirement (GJ/ae)", y="Maximum energy inequality (10:10 ratio)", color = "Scenario")+
theme(text=element_text(family="Liberation Sans Narrow"),
axis.text.x = element_text(size = 13),
axis.text.y = element_text(size = 13)) +
scale_y_continuous(breaks = c(2.5,5,7.5,10,12.5)) # +
#theme_ipsum()
axis.title.y = element_text(size=13, hjust = 0.5),
axis.text.x = element_text(size = 12),
axis.text.y = element_text(size = 12),
legend.text = element_text(size=12),
legend.title = element_text(size=13))
ggsave(here("analysis", "figures", "figure5.pdf"))
```
```{r figure5, out.width="70%", fig.align="center", fig.cap="Mean energy available for Europe in decarbonisation scenarios, positioned in option space between a range of minimum energy requirements and range of associated maximum inequality. All expenditure deciles have 'best technology' already."}
knitr::include_graphics(here::here("analysis", "figures", "figure5.pdf"))
```
No preview for this file type
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment