Global Energy Use and Poverty
Graphs of global energy use, electricity use, CO2 emissions, GDP, and poverty using data from Our World in Data and IEA
Data
Energy production and consumption
CO2 emissions per capita
Extreme poverty & literacy
World Bank Group - IEA
Prepare Data
# devtools::install_github("derekmichaelwright/agData")
library(agData)
library(plotly)
library(htmlwidgets)
library(gganimate)
# Prep data
myCaption_OWID <- "www.dblogr.com/ or derekmichaelwright.github.io/dblogr/ | Data: OurWorldInData"
myCaption_IEA <- "www.dblogr.com/ or derekmichaelwright.github.io/dblogr/ | Data: IEA"
myItems <- c("Other", "Biofuels", "Solar", "Wind",
"Hydro", "Nuclear", "Gas", "Oil", "Coal", "Biomass")
myColors <- c("burlywood3", "darkseagreen4","darkgoldenrod2","steelblue",
"darkred", "darkblue", "slategray3",
"black", "grey50", "darkgreen")
d1 <- read.csv("global-energy-substitution.csv")
colnames(d1)[4:13] <- myItems
myItems <- myItems[c(1:4,6,5,7:10)]
#
d1 <- d1 %>% gather(Source, Value, 4:13) %>%
mutate(Source = factor(Source, levels = myItems)) %>%
group_by(Year) %>%
mutate(Total = sum(Value),
Percent = 100 * Value / Total) %>%
ungroup()
#
d2 <- read.csv("per-capita-energy-use.csv") %>%
mutate(Unit = "kWh per person") %>%
rename(Area=Entity, Value=4)
#
oldnames <- c("United States", "South Korea", "Brunei")
newnames <- c("USA", "Republic of Korea", "Brunei Darussalam")
d3 <- read.csv("consumption-co2-per-capita-vs-gdppc.csv") %>%
select(Country=Entity, Year, CO2=Annual.consumption.based.CO2.emissions..per.capita.,
GDP=GDP.per.capita..PPP..constant.2017.international...,
Population=Population..historical.estimates.) %>%
mutate(Country = plyr::mapvalues(Country, oldnames, newnames)) %>%
left_join(agData_FAO_Country_Table, by = "Country") %>%
filter(!(is.na(GDP) & is.na(CO2) & is.na(Population)))
#
d4 <- read.csv("world-population-in-extreme-poverty-absolute.csv") %>%
rename(`Not in extreme poverty` = 4,
`Living in extreme poverty` = 5) %>%
mutate(Total = `Not in extreme poverty` + `Living in extreme poverty`) %>%
gather(Measurement, Value, 4:5) %>%
mutate(Percent = 100 * Value / Total)
#
d5 <- read.csv("literate-and-illiterate-world-population.csv") %>%
rename(Literate = 4,
Iliterate = 5) %>%
gather(Measurement, Percent, 4:5)
#
d6 <- read.csv("API_EG.USE.ELEC.KH.PC_DS2_en_csv_v2_2076.csv", skip = 4) %>%
gather(Year, Value, 5:ncol(.)) %>%
mutate(Year = as.numeric(gsub("X","",Year))) %>%
filter(!is.na(Value))
Global Energy by Source
Consumption
# Plot
mp <- ggplot(d1, aes(x = Year, y = Value / 1000, fill = Source)) +
geom_area(alpha = 0.7, color = alpha("black",0.7), lwd = 0.3) +
scale_fill_manual(name = NULL, values = myColors) +
scale_y_continuous(expand = c(0,0), limits = c(0,180),
minor_breaks = seq(0,200,10)) +
scale_x_continuous(breaks = seq(1800, 2020, by = 50), expand = c(0.005,0),
minor_breaks = seq(1800, 2020, by = 10)) +
guides(fill = guide_legend(override.aes = list(lwd = 0.4))) +
theme_agData() +
labs(title = "Global Energy Consumption",
y = "Thousand TWH", x = NULL, caption = myCaption_OWID)
ggsave("world_energy_1_01.png", mp, width = 8, height = 4)
Select Years
xx <- d1 %>% filter(Year %in% c(1800, 1850, 1900, 1950, 1975, 2000, 2021))
# Plot
mp <- ggplot(xx, aes(x = 1, y = Value / 1000, fill = Source)) +
geom_col(color = "black", alpha = 0.7, lwd = 0.3) +
scale_fill_manual(name = NULL, values = myColors) +
scale_y_continuous(expand = c(0.01,0), minor_breaks = seq(0,180,10)) +
facet_grid(. ~ Year) +
guides(fill = guide_legend(override.aes = list(lwd = 0.4))) +
theme_agData(axis.text.x = element_blank(),
axis.ticks.x = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank()) +
labs(title = "Global Energy Consumption",
y = "Thousand TWH", x = NULL, caption = myCaption_OWID)
ggsave("world_energy_1_02.png", mp, width = 6, height = 4)
Fossil Fuels
Stacked
# Prep data
xx <- d1 %>% filter(Source %in% myItems[7:9])
# Plot
mp <- ggplot(xx, aes(x = Year, y = Value / 1000, fill = Source)) +
geom_area(alpha = 0.7, color = "black") +
scale_fill_manual(name = NULL, values = myColors[9:7], breaks = myItems[9:7]) +
scale_y_continuous(breaks = seq(0, 160, by = 20), limits = c(0,150),
minor_breaks = seq(0, 150, by = 10), expand = c(0,0)) +
scale_x_continuous(breaks = seq(1800, 2020, by = 50), expand = c(0.005,0),
minor_breaks = seq(1800, 2020, by = 10)) +
theme_agData() +
guides(fill = guide_legend(reverse=T)) +
labs(title = "Global Consumption of Fossil Fuels",
y = "Thousand TWH", x = NULL, caption = myCaption_OWID)
ggsave("world_energy_1_03.png", mp, width = 6, height = 4)
Facetted
# Prep data
xx <- d1 %>% filter(Source %in% myItems[9:7]) %>%
mutate(Source = factor(Source, levels = myItems[9:7]))
# Plot
mp <- ggplot(xx, aes(x = Year, y = Value / 1000, fill = Source)) +
geom_area(alpha = 0.7, color = "black") +
scale_fill_manual(name = NULL, values = myColors[9:7]) +
facet_wrap(Source ~ .) +
scale_y_continuous(breaks = seq(0, 60, by = 10), limits = c(0,55),
minor_breaks = seq(0, 60, by = 5), expand = c(0,0)) +
scale_x_continuous(breaks = seq(1800, 2020, by = 50), expand = c(0.01,0),
minor_breaks = seq(1800, 2020, by = 10)) +
theme_agData(legend.position = "none") +
labs(title = "Global Consumption of Fossil Fuels",
y = "Thousand TWH", x = NULL, caption = myCaption_OWID)
ggsave("world_energy_1_04.png", mp, width = 6, height = 3)
Renewables
# Prep data
xx <- d1 %>% filter(Source %in% myItems[1:6]) %>%
mutate(Source = factor(Source, levels = myItems[6:1]))
# Plot
mp <- ggplot(xx, aes(x = Year, y = Value / 1000, fill = Source)) +
geom_area(alpha = 0.7, color = "black") +
scale_fill_manual(name = NULL, values = myColors[6:1]) +
facet_wrap(Source ~ .) +
scale_y_continuous(breaks = seq(0, 11, by = 2),
minor_breaks = seq(0, 11, by = 1)) +
scale_x_continuous(breaks = seq(1800, 2020, by = 50),
minor_breaks = seq(1800, 2020, by = 10)) +
theme_agData(legend.position = "none") +
labs(title = "Global Consumption of \"Green\" Energy",
y = "Thousand TWH", x = NULL, caption = myCaption_OWID)
ggsave("world_energy_1_05.png", mp, width = 6, height = 4)
Projections
Fossil Fuels
# Prep data
xx <- d1 %>% filter(Source %in% myItems[9:7], Year > 1950) %>%
mutate(Source = factor(Source, levels = myItems[9:7]))
fit1 <- lm(Value ~ Year, data = xx %>% filter(Source == "Coal"))
fit2 <- lm(Value ~ Year, data = xx %>% filter(Source == "Oil"))
fit3 <- lm(Value ~ Year, data = xx %>% filter(Source == "Gas"))
x1 <- data.frame(Year = c(1950, 2050), Source = "Coal")
x1$Value <- predict(fit1, newdata = x1)
x2 <- data.frame(Year = c(1950, 2050), Source = "Oil")
x2$Value <- predict(fit2, newdata = x2)
x3 <- data.frame(Year = c(1950, 2050), Source = "Gas")
x3$Value <- predict(fit3, newdata = x3)
yy <- rbind(x1, x2, x3)
# Plot
mp <- ggplot(xx, aes(x = Year, y = Value / 1000, color = Source)) +
geom_line(alpha = 0.7, lwd = 1) +
geom_line(data = yy, lwd = 0.5, lty = 2, alpha = 0.7) +
scale_color_manual(name = NULL, values = myColors[9:7]) +
scale_x_continuous(breaks = seq(1950, 2050, by = 10),
minor_breaks = seq(1950, 2050, by = 10)) +
theme_agData(legend.position = "bottom") +
labs(title = "Global Consumption of Fossil Fuels",
y = "Thousand TWH", x = NULL, caption = myCaption_OWID)
ggsave("world_energy_1_06.png", mp, width = 6, height = 4)
Renewables
# Prep data
xx <- d1 %>% filter(Source == "Nuclear", Year > 1970 & Year < 1990)
fit1 <- lm(Value ~ Year, data = xx)
xx <- d1 %>% filter(Source == "Hydro", Year > 1950)
fit2 <- lm(Value ~ Year, data = xx)
xx <- d1 %>% filter(Source == "Wind", Year > 2010)
fit3 <- lm(Value ~ Year, data = xx)
xx <- d1 %>% filter(Source == "Solar", Year > 2015)
fit4 <- lm(Value ~ Year, data = xx)
xx <- d1 %>% filter(Source == "Biofuels", Year > 2010)
fit5 <- lm(Value ~ Year, data = xx)
xx <- d1 %>% filter(Source == "Other", Year > 2010)
fit6 <- lm(Value ~ Year, data = xx)
#
x1 <- data.frame(Year = c(1970, 2050), Source = "Nuclear")
x1$Value <- predict(fit1, newdata = x1)
x2 <- data.frame(Year = c(1950, 2050), Source = "Hydro")
x2$Value <- predict(fit2, newdata = x2)
x3 <- data.frame(Year = c(2010, 2050), Source = "Wind")
x3$Value <- predict(fit3, newdata = x3)
x4 <- data.frame(Year = c(2015, 2050), Source = "Solar")
x4$Value <- predict(fit4, newdata = x4)
x5 <- data.frame(Year = c(2010, 2050), Source = "Biofuels")
x5$Value <- predict(fit5, newdata = x5)
x6 <- data.frame(Year = c(2010, 2050), Source = "Other")
x6$Value <- predict(fit6, newdata = x6)
#
yy <- rbind(x1, x2, x3, x4, x5, x6)
xx <- d1 %>% filter(Year > 1950, Source %in% myItems[1:6])
# Plot
mp <- ggplot(xx, aes(x = Year, y = Value / 1000, color = Source)) +
geom_line(alpha = 0.7, lwd = 1) +
geom_line(data = yy, lwd = 0.5, lty = 2, alpha = 0.7) +
facet_wrap(Source ~ ., scales = "free_y") +
scale_color_manual(name = NULL, values = myColors) +
scale_x_continuous(breaks = seq(1950, 2050, by = 20),
minor_breaks = seq(1950, 2050, by = 10)) +
theme_agData(legend.position = "none",
axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(title = "Global Consumption of \"Green\" Energy",
y = "Thousand TWH", x = NULL, caption = myCaption_OWID)
ggsave("world_energy_1_07.png", mp, width = 6, height = 4)
Nuclear Energy
# Prep data
xx <- d1 %>% filter(Source == "Nuclear", Year > 1970 & Year < 1990)
fit1 <- lm(Value ~ Year, data = xx)
#
yy <- data.frame(Year = c(1970, 2050), Source = "Nuclear")
yy$Value <- predict(fit1, newdata = yy)
#
xx <- d1 %>% filter(Year > 1950, Source == "Nuclear")
# Plot
mp <- ggplot(xx, aes(x = Year, y = Value / 1000, color = Source)) +
geom_line(alpha = 0.7, lwd = 1) +
geom_line(data = yy, lwd = 0.5, lty = 2, alpha = 0.7) +
facet_wrap(Source ~ ., scales = "free_y") +
scale_color_manual(name = NULL, values = "darkred") +
scale_x_continuous(breaks = seq(1950, 2050, by = 20),
minor_breaks = seq(1950, 2050, by = 10)) +
theme_agData(legend.position = "none",
axis.text.x = element_text(angle = 45, hjust = 1)) +
labs(title = "Global Consumption of Nuclear Energy",
y = "Thousand TWH", x = NULL, caption = myCaption_OWID)
ggsave("world_energy_1_08.png", mp, width = 6, height = 4)
Percent
All Data
# Plot
mp <- ggplot(d1, aes(x = Year, y = Percent, fill = Source)) +
geom_area(alpha = 0.7, color = "black", lwd = 0.2) +
scale_fill_manual(name = NULL, values = myColors) +
scale_y_continuous(breaks = seq(0,100,10), expand = c(0,0)) +
scale_x_continuous(breaks = seq(1800, 2020, by = 50), expand = c(0,0),
minor_breaks = seq(1800, 2020, by = 10)) +
guides(fill = guide_legend(override.aes = list(lwd = 0.4))) +
theme_agData() +
labs(title = "Global Energy Consumption",
y = "Percent of Total Energy Use", x = NULL, caption = myCaption_OWID)
ggsave("world_energy_1_09.png", mp, width = 8, height = 4)
Fossil Fuels
# Prep data
xx <- d1 %>% filter(Source %in% myItems[9:7]) %>%
mutate(Source = factor(Source, levels = myItems[9:7]))
# Plot
mp <- ggplot(xx, aes(x = Year, y = Percent, fill = Source)) +
geom_area(alpha = 0.7, color = "black") +
scale_fill_manual(name = NULL, values = myColors[9:7]) +
facet_wrap(Source ~ .) +
scale_y_continuous(breaks = seq(0, 60, by = 10),
minor_breaks = seq(0, 60, by = 5)) +
scale_x_continuous(breaks = seq(1800, 2020, by = 50),
minor_breaks = seq(1800, 2020, by = 10)) +
theme_agData(legend.position = "none") +
labs(title = "Global Consumption of Fossil Fuels", x = NULL,
y = "Percent of Total Energy Use", caption = myCaption_OWID)
ggsave("world_energy_1_10.png", mp, width = 6, height = 3)
Renewables
# Prep data
xx <- d1 %>% filter(Source %in% myItems[1:6], Year > 1850) %>%
mutate(Source = factor(Source, levels = rev(myItems[c(1:4,6,5)])))
# Plot
mp <- ggplot(xx, aes(x = Year, y = Percent, fill = Source)) +
geom_area(alpha = 0.7, color = "black", lwd = 0.2) +
scale_fill_manual(name = NULL, values = rev(myColors[c(1:4,6,5)])) +
facet_wrap(Source ~ .) +
scale_x_continuous(breaks = seq(1850, 2020, by = 50),
minor_breaks = seq(1850, 2020, by = 10)) +
theme_agData(legend.position = "none") +
labs(title = "Global Consumption of \"Green\" Energy",
y = "Percent of Total Energy Use", x = NULL, caption = myCaption_OWID)
ggsave("world_energy_1_11.png", mp, width = 6, height = 4)
2021
# Prep data
xx <- d1 %>% filter(Year == 2021) %>%
mutate(Source = factor(Source, levels = myItems[c(9:1,10)]))
# Plot
mp <- ggplot(xx, aes(x = 1, y = -Percent, fill = Source)) +
geom_col(color = "black", lwd = 0.3, alpha = 0.7) +
scale_fill_manual(name = NULL, breaks = myItems[c(9:1,10)],
values = myColors[c(9:1,10)] ) +
guides(fill = guide_legend(override.aes = list(lwd = 0.4))) +
coord_polar("y", start = 0) +
theme_agData_pie() +
xlim(0.545, 1.45) +
labs(title = "Global Energy Consumption - 2021", caption = myCaption_OWID)
ggsave("world_energy_1_12.png", mp, width = 7, height = 5)
Pie Animation
# Prep data
xx <- d1 %>% filter(Percent > 0)
# Plot
mp <- ggplot(xx, aes(x = "", y = -Percent, fill = Source)) +
geom_col(color = "black", alpha = 0.7) +
scale_fill_manual(name = NULL, breaks = myItems[c(9:1,10)],
values = myColors[c(9:1,10)]) +
coord_polar("y", start = 0) +
theme_agData_pie() +
labs(title = "Percent of Global Energy Consumption - {round(frame_time)}",
caption = myCaption_OWID) +
transition_time(Year)
anim_save("world_energy_gif_1_01.gif", mp,
nframes = 300, fps = 10, end_pause = 30,
width = 900, height = 700, res = 150, units = "px")
Bar Animation
# Prep data
xx <- d1 %>% filter(Year > 1870)
# Plot
mp <- ggplot(xx, aes(x = 1, y = Value / 1000, fill = Source)) +
geom_col(color = "black", alpha = 0.7) +
scale_fill_manual(name = NULL,
values = rev(myColors), breaks = rev(myItems)) +
scale_x_continuous(expand = c(0,0)) +
theme_agData(legend.position = "bottom",
axis.text.y = element_blank(),
axis.ticks.y = element_blank()) +
coord_flip() +
guides(fill = guide_legend(nrow = 1)) +
labs(title = "Global Energy Consumption - {round(frame_time)}",
y = "Thousand TWH", x = NULL, caption = myCaption_OWID) +
transition_time(Year)
anim_save("world_energy_gif_1_02.gif", mp,
nframes = 300, fps = 10, end_pause = 30,
width = 1200, height = 300, res = 150, units = "px")
Per Capita Energy Use
Select Countries
# Prep data
myAreas <- c("Canada", "United States", "China", "India", "Africa")
myColors <- c("steelblue", "darkblue", "darkred", "darkorange", "darkgreen")
xx <- d2 %>% filter(Area %in% myAreas) %>%
mutate(Area = factor(Area, levels = myAreas))
mp <- ggplot(xx, aes(x = Year, y = Value / 1000, color = Area)) +
geom_line(linewidth = 1.5, alpha = 0.7) +
scale_color_manual(name = NULL, values = myColors) +
theme_agData() +
labs(title = "Per Capita Emmisions", x = NULL,
y = "Thousand kWh Per Person", caption = myCaption_OWID)
ggsave("world_energy_2_01.png", mp, width = 6, height = 4)
Canada vs China
# Prep data
myAreas <- c("Canada", "China")
myColors <- c("steelblue", "darkred")
xx <- d2 %>% filter(Area %in% myAreas) %>%
mutate(Area = factor(Area, levels = myAreas))
mp2 <- ggplot(xx, aes(x = Year, y = Value / 1000, color = Area)) +
geom_line(alpha = 0.7, lwd = 1.5) +
scale_color_manual(name = NULL, values = myColors) +
theme_agData() +
labs(title = "B) Propaganda For China", x = NULL,
y = "Thousand kWh Per Person", caption = myCaption_OWID)
mp1 <- mp2 + facet_wrap(Area ~ ., scales = "free_y") +
labs(title = "A) Propaganda For Canada", caption = NULL)
mp <- ggarrange(mp1, mp2, ncol = 1, common.legend = T, legend = "bottom")
ggsave("world_energy_2_02.png", mp, width = 6, height = 5, bg = "white")
CO2 vs GDP
1990
# Prep data
xx <- d3 %>% filter(Year == 1990, !is.na(Region), !is.na(CO2), !is.na(GDP))
myColors <- c("darkgreen", "darkblue", "darkred","darkorange", "purple")
r2 <- round(cor(xx$CO2, xx$GDP)^2, 2)
mm <- round(summary(lm(data = xx, GDP / 1000 ~ CO2))$coefficients[2], 1)
# Plot
mp <- ggplot(xx, aes(x = CO2, y = GDP / 1000)) +
geom_point(aes(color = Region, size = Population), alpha = 0.7) +
geom_smooth(method = "lm", se = F, color = "black") +
geom_label(x = 5, y = 100, label = paste("italic(R)^2 == ", r2), parse = T) +
geom_label(x = 5, y = 85, label = paste("italic(m) == ", mm), parse = T) +
facet_grid(. ~ Year) +
scale_color_manual(name = NULL, values = myColors) +
guides(size = F) +
ylim(c(0, 125)) + xlim(c(0, 40)) +
theme_agData() +
labs(title = "Carbon Emmissions and GDP",
y = "GDP Per Capita (int.-$ x1000)",
x = "Per Capita Consumption-Based CO2 emissions",
caption = myCaption_OWID)
ggsave("world_energy_3_01.png", mp, width = 6, height = 4)
2018
# Prep data
xx <- d3 %>% filter(Year == 2018, !is.na(Region), !is.na(CO2), !is.na(GDP))
myColors <- c("darkgreen", "darkblue", "darkred","darkorange", "purple")
r2 <- round(cor(xx$CO2, xx$GDP)^2, 2)
mm <- round(summary(lm(data = xx, GDP / 1000 ~ CO2))$coefficients[2], 1)
# Plot
mp <- ggplot(xx, aes(x = CO2, y = GDP / 1000)) +
geom_point(aes(color = Region, size = Population, key1 = Country), alpha = 0.7) +
geom_smooth(method = "lm", se = F, color = "black") +
geom_label(x = 5, y = 100, label = paste("italic(R)^2 == ", r2), parse = T) +
geom_label(x = 5, y = 85, label = paste("italic(m) == ", mm), parse = T) +
facet_grid(. ~ Year) +
scale_color_manual(name = NULL, values = myColors) +
guides(size = F) +
ylim(c(0, 125)) + xlim(c(0, 40)) +
theme_agData() +
labs(title = "Carbon Emmissions and GDP",
y = "GDP Per Capita (int.-$ x1000)",
x = "Per Capita Consumption-Based CO2 Emissions",
caption = myCaption_OWID)
ggsave("world_energy_3_02.png", mp, width = 6, height = 4)
1990 vs 2018
# Prep data
xx <- d3 %>%
filter(Year %in% c(1990, 2018), !is.na(Region), !is.na(CO2), !is.na(GDP))
myColors <- c("darkgreen", "darkblue", "darkred","darkorange", "purple")
# Plot
mp <- ggplot(xx, aes(x = CO2, y = GDP / 1000)) +
geom_point(aes(color = Region, size = Population), alpha = 0.7) +
geom_smooth(method = "lm", se = F, color = "black") +
facet_grid(. ~ Year) +
scale_color_manual(name = NULL, values = myColors) +
guides(size = F) +
ylim(c(0, 125)) + xlim(c(0, 40)) +
theme_agData() +
labs(title = "Carbon Emmissions and GDP",
y = "GDP Per Capita (int.-$ x1000)",
x = "Per Capita Consumption-Based CO2 Emissions",
caption = myCaption_OWID)
ggsave("world_energy_3_03.png", mp, width = 8, height = 4)
Animation
# Prep data
xx <- d3 %>% filter(!is.na(Region), !is.na(CO2), !is.na(GDP))
myColors <- c("darkgreen", "darkblue", "darkred","darkorange", "purple")
r2 <- round(cor(xx$CO2, xx$GDP)^2, 2)
# Plot
mp <- ggplot(xx, aes(x = CO2, y = GDP / 1000)) +
geom_point(aes(color = Region, size = Population), alpha = 0.7) +
scale_color_manual(name = NULL, values = myColors) +
guides(size = F) +
theme_agData() +
labs(title = "Carbon Emmissions and GDP",
subtitle = "Year: {frame_time}",
y = "GDP Per Capita (int.-$ x1000)",
x = "Per Capita Consumption-Based CO2 Emissions",
caption = myCaption_OWID) +
transition_time(Year)
anim_save("world_energy_gif_2_01.gif", mp,
nframes = 300, fps = 10, end_pause = 30,
width = 900, height = 600, res = 150, units = "px")
Change
# Prep data
xx <- d3 %>%
filter(Year %in% c(2000, 2018), !is.na(Region), !is.na(CO2), !is.na(GDP)) %>%
mutate(Year = factor(Year))
y1 <- xx %>% select(Country, Year, CO2) %>%
filter(!duplicated(paste(.$Country, .$Year))) %>%
spread(Year, CO2) %>%
mutate(CO2diff = `2018` - `2000` >= 0) %>%
select(Country, CO2diff)
y2 <- xx %>% select(Country, Year, GDP) %>%
filter(!duplicated(paste(.$Country, .$Year))) %>%
spread(Year, GDP) %>%
mutate(GDPdiff = `2018` - `2000` >= 0) %>%
select(Country, GDPdiff)
myGroups1 <- c("TRUE TRUE", "FALSE TRUE", "FALSE FALSE", "TRUE FALSE")
myGroups2 <- c("+CO2 +GDP", "-CO2 +GDP", "-CO2 -GDP", "+CO2 -GDP")
myColors <- c("steelblue", "darkgreen", "darkorange", "darkred")
xx <- xx %>%
left_join(y1, by = "Country") %>%
left_join(y2, by = "Country") %>%
mutate(Group = paste(CO2diff, GDPdiff),
Group = plyr::mapvalues(Group, myGroups1, myGroups2),
Group = factor(Group, levels = myGroups2)) %>%
filter(!is.na(CO2diff), !is.na(GDPdiff))
# Plot
mp <- ggplot(xx, aes(x = CO2, y = GDP / 1000)) +
geom_line(aes(group = Country, color = Group)) +
geom_point(aes(pch = Year, size = Population), alpha = 0.3) +
facet_wrap(Region ~ ., scales = "free", ncol = 5) +
scale_color_manual(name = NULL, values = myColors) +
scale_shape_manual(name = NULL, values = c(16,17)) +
guides(size = F) +
theme_agData(legend.position = "bottom") +
labs(title = "Carbon Emmissions and GDP",
subtitle = "2000 - 2018",
y = "GDP Per Capita (int.-$ x1000)",
x = "Per Capita Consumption-Based CO2 Emissions",
caption = myCaption_OWID)
ggsave("world_energy_3_04.png", mp, width = 10, height = 3.5)
Canada
# Prep data
xx <- d3 %>% select(Country, Year, GDP, CO2) %>%
filter(Country == "Canada") %>%
mutate(GDP = GDP / 1000) %>%
gather(Measurement, Value, CO2, GDP) %>%
mutate(Measurement = plyr::mapvalues(Measurement, c("CO2","GDP"),
c("CO2 emissions per capita", "GDP (int.-$ x1000)")))
# Plot
mp <- ggplot(xx, aes(x = Year, y = Value, color = Measurement)) +
geom_line(size = 2, alpha = 0.7) +
facet_wrap(Measurement ~ ., scales = "free") +
scale_color_manual(values = c("darkred", "steelblue")) +
xlim(c(1997, 2020)) +
theme_agData(legend.position = "none") +
labs(title = "Canadian Carbon Emmissions and GDP",
y = NULL, x = NULL, caption = myCaption_OWID)
ggsave("world_energy_3_05.png", mp, width = 8, height = 4)
Poverty
Global Poverty
# Plot
mp <- ggplot(d4, aes(x = Year, y = Value / 1000000000, color = Measurement)) +
geom_line(size = 1.5, alpha = 0.7) +
scale_color_manual(name = NULL, values = c("darkred", "steelblue")) +
scale_y_continuous(breaks = 0:7) +
scale_x_continuous(breaks = seq(1820, 2020, by = 20)) +
theme_agData(legend.position = "bottom") +
guides(color = guide_legend(nrow = 2, ncol = 1)) +
labs(title = "Global Poverty", x = NULL,
y = "Billion People", caption = myCaption_OWID)
ggsave("world_energy_4_01.png", mp, width = 6, height = 4)
Percent Poverty
# Prep data
xx <- d4 %>% filter(Measurement == "Living in extreme poverty")
# Plot
mp <- ggplot(xx, aes(x = Year, y = Percent)) +
geom_hline(yintercept = min(xx$Percent), alpha = 0.2) +
geom_hline(yintercept = max(xx$Percent), alpha = 0.2) +
geom_line(color = "darkred", size = 1.5, alpha = 0.7) +
scale_y_continuous(limits = c(0, 100),
breaks = seq(0, 100, by = 10)) +
scale_x_continuous(breaks = seq(1820, 2020, by = 20)) +
theme_agData(legend.position = "bottom") +
guides(color = guide_legend(nrow = 2, ncol = 1)) +
labs(title = "Percent of People Living in Extreme Poverty",
y = NULL, x = NULL, caption = myCaption_OWID)
ggsave("world_energy_4_02.png", mp, width = 6, height = 4)
Poverty Pie
# Plot
mp <- ggplot(d4, aes(x = "", y = Percent, fill = Measurement)) +
geom_col(color = "black", alpha = 0.7) +
scale_fill_manual(name = NULL, values = c("darkred", "steelblue")) +
coord_polar("y", start = 0) +
theme_agData(legend.position = "bottom") +
theme_agData_pie() +
labs(title = "Percent of People Living in Poverty - {round(frame_time)}",
caption = myCaption_OWID) +
transition_time(Year)
anim_save("world_energy_gif_3_01.gif", mp,
nframes = 300, fps = 10, end_pause = 30,
width = 900, height = 700, res = 150, units = "px")
Literacy
# Plot
mp <- ggplot(d4, aes(x = Year, y = Percent, color = Measurement)) +
geom_hline(yintercept = min(xx$Percent), alpha = 0.2) +
geom_hline(yintercept = max(xx$Percent), alpha = 0.2) +
geom_line(size = 1.5, alpha = 0.7) +
scale_color_manual(name = NULL, values = c("darkred", "steelblue")) +
scale_y_continuous(limits = c(0, 100),
breaks = seq(0, 100, by = 10)) +
scale_x_continuous(breaks = seq(1800, 2020, by = 20)) +
theme_agData(legend.position = "bottom") +
guides(fill = guide_legend(nrow = 2, ncol = 1)) +
labs(title = "Global Literacy Rates", x = NULL,
y = "Percent", caption = myCaption_OWID)
ggsave("world_energy_4_03.png", mp, width = 6, height = 4)
Poverty + Illiteracy
# Prep data
x1 <- d4 %>% filter(Measurement == "Not in extreme poverty")
x2 <- d5%>% filter(Measurement == "Literate")
xx <- bind_rows(x1, x2)
# Plot
mp <- ggplot(xx, aes(x = Year, y = Percent, color = Measurement)) +
geom_line(size = 1.5, alpha = 0.7) +
scale_color_manual(name = NULL, values = c("darkgoldenrod2", "steelblue")) +
scale_y_continuous(limits = c(0, 100),
breaks = seq(0, 100, by = 10)) +
scale_x_continuous(breaks = seq(1800, 2020, by = 20)) +
theme_agData(legend.position = "bottom") +
guides(fill = guide_legend(nrow = 2, ncol = 1)) +
labs(title = "Global Reduction in Poverty and Illiteracy",
y = "Percent", x = NULL, caption = myCaption_OWID)
ggsave("world_energy_4_04.png", mp, width = 6, height = 4)
Energy and Poverty
# Prep data
x1 <- d4 %>%
filter(Measurement == "Not in extreme poverty")
x2 <- d1 %>% filter(Source %in% myItems[7:9]) %>%
select(Year, Source, Value) %>%
spread(Source, Value) %>%
mutate(`Fossil Fuels` = Coal + Gas + Oil)
xx <- left_join(x1, x2, by = "Year")
# Plot
mp <- ggplot(xx, aes(x = `Fossil Fuels` / 1000, y = Percent)) +
stat_regline_equation(aes(label = ..rr.label..)) +
stat_smooth(geom = "line", method = "lm", alpha = 0.7) +
geom_point(size = 2.5, color = "steelblue", alpha = 0.7) +
theme_agData(legend.position = "none") +
guides(fill = guide_legend(nrow = 2, ncol = 1)) +
labs(title = "Fossil Fuels and Global Reduction in Poverty",
y = "Percent Not in Extreme Poverty",
x = "Thousand TWH From Fossil Fuels",
caption = myCaption_OWID)
ggsave("world_energy_4_05.png", mp, width = 6, height = 4)
Electricity
Countries
# Prep data
myAreas <- c("Canada", "United States", "Germany", "Africa Eastern and Southern")
xx <- d6 %>% filter(Country.Name %in% myAreas) %>%
mutate(Country.Name = factor(Country.Name, levels = myAreas))
# Plot
mp <- ggplot(xx, aes(x = Year, y = Value, color = Country.Name)) +
geom_line(alpha = 0.7, size = 1) +
scale_color_manual(name = NULL, values = c("darkgreen", "darkblue", "black", "darkred")) +
theme_agData(legend.position = "bottom") +
labs(title = "Electricity Use", x = NULL,
y = "kWh per capita", caption = myCaption_IEA)
ggsave("world_energy_5_01.png", mp, width = 6, height = 4)
Africa vs My Fridge
# Prep data
myAreas <- c("Ethiopia", "Tanzania", "Liberia", "Nigeria", "Kenya", "Ghana", "My fridge")
yy <- data.frame(Country.Name = "My fridge", Year = 2010, Value = 459, Group = "My fridge")
xx <- d6 %>%
filter(Country.Name %in% myAreas, Year == 2010) %>%
mutate(Group = "Africa") %>%
bind_rows(yy) %>%
mutate(Country.Name = factor(Country.Name, levels = myAreas))
# Plot
mp <- ggplot(xx, aes(x = Country.Name, y = Value)) +
geom_col(aes(fill = Group), alpha = 0.7, color = "black") +
geom_label(aes(label = round(Value)), nudge_y = 20) +
scale_fill_manual(name = NULL, values = c("darkred","darkgreen")) +
theme_agData(legend.position = "none") +
labs(title = "Electricity Use", x = NULL,
y = "kWh per capita", caption = myCaption_IEA)
ggsave("world_energy_5_02.png", mp, width = 6, height = 4)
Historical Data
# Prep data
myAreas <- c("Ethiopia", "Tanzania", "Libya", "Nigeria", "Kenya", "Ghana")
myColors <- c("darkgreen", "steelblue", "darkblue", "darkorange", "black", "darkred")
xx <- d6 %>% filter(Country.Name %in% myAreas) %>%
mutate(Country.Name = factor(Country.Name, levels = myAreas))
# Plot
mp <- ggplot(xx, aes(x = Year, y = Value, color = Country.Name)) +
geom_line(alpha = 0.7, size = 1) +
scale_color_manual(name = NULL, values = myColors) +
theme_agData(legend.position = "bottom") +
labs(title = "Electricity Use", x = NULL,
y = "kWh per capita", caption = myCaption_IEA)
ggsave("world_energy_5_03.png", mp, width = 6, height = 4)
Africa
East vs West
# Prep data
myAreas <- c("Africa Eastern and Southern", "Africa Western and Central",
"Middle East & North Africa (excluding high income)",
"Sub-Saharan Africa (excluding high income)")
xx <- d6 %>% filter(Country.Name %in% myAreas) %>%
mutate(Country.Name = factor(Country.Name, levels = myAreas))
# Plot
mp <- ggplot(xx, aes(x = Year, y = Value, color = Country.Name)) +
geom_line(alpha = 0.7, size = 1) +
scale_color_manual(name = NULL, values = c("darkgreen", "darkblue", "black", "darkred")) +
theme_agData(legend.position = "bottom") +
labs(title = "Electricity Use", x = NULL,
y = "kWh per capita", caption = myCaption_IEA)
ggsave("world_energy_5_04.png", mp, width = 6, height = 4)
Countries
# Prep data
myAreas <- c("Ethiopia", "Rwanda", "Nigeria", "Kenya", "Ghana")
xx <- d6 %>% filter(Country.Name %in% myAreas) %>%
mutate(Country.Name = factor(Country.Name, levels = myAreas))
# Plot
mp <- ggplot(xx, aes(x = Year, y = Value, color = Country.Name)) +
geom_line(alpha = 0.7, size = 1) +
scale_color_manual(name = NULL, values = c("darkgreen", "darkblue", "black", "darkred")) +
theme_agData(legend.position = "bottom") +
labs(title = "Electricity Use", x = NULL,
y = "kWh per capita", caption = myCaption_IEA)
ggsave("world_energy_5_05.png", mp, width = 6, height = 4)