library(RJSONIO)
library(WDI)
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 3.3.3
## Loading tidyverse: ggplot2
## Loading tidyverse: tibble
## Loading tidyverse: tidyr
## Loading tidyverse: readr
## Loading tidyverse: purrr
## Loading tidyverse: dplyr
## Warning: package 'ggplot2' was built under R version 3.3.3
## Warning: package 'tibble' was built under R version 3.3.3
## Warning: package 'tidyr' was built under R version 3.3.3
## Warning: package 'readr' was built under R version 3.3.3
## Warning: package 'purrr' was built under R version 3.3.3
## Warning: package 'dplyr' was built under R version 3.3.3
## Conflicts with tidy packages ----------------------------------------------
## filter(): dplyr, stats
## lag(): dplyr, stats
library(ggrepel)
## Warning: package 'ggrepel' was built under R version 3.3.3
library(ggthemes)
## Warning: package 'ggthemes' was built under R version 3.3.3
library(ggplot2)
library(magrittr)
## Warning: package 'magrittr' was built under R version 3.3.3
##
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
##
## set_names
## The following object is masked from 'package:tidyr':
##
## extract
library(scales)
## Warning: package 'scales' was built under R version 3.3.3
##
## Attaching package: 'scales'
## The following object is masked from 'package:purrr':
##
## discard
## The following object is masked from 'package:readr':
##
## col_factor
dat <- WDI(indicator = c("EN.ATM.CO2E.KT", "NY.GDP.PCAP.CD","EN.ATM.GHGT.KT.CE"),
country = c("VN"),
start = 1980,
end = 2015)
datRR <- WDI(indicator = c("NY.GDP.TOTL.RT.ZS"),
country = c("VN","CN","1W","4E"),
start = 1985,
end = 2015)
dat %>% ggplot(aes(dat$NY.GDP.PCAP.CD,dat$EN.ATM.GHGT.KT.CE/1000,
label = year)) +
geom_point()+
#Biểu hiện tên các quan sát trên đồ thị
geom_text(check_overlap = T)+
#Vẽ đường hồi quy bậc 2
stat_smooth(method = "lm", formula = y ~ x + I(x^2), size = 1, se = F )+
labs(x = "GDP bình quân đầu người (US$)",
y = "Lượng khí nhà kính (1000 tấn CO2 quy đổi)",
title = "Hình 6: Mối quan hệ giữa lượng khí nhà kính và GDP bình quân đầu người của Việt Nam thời kỳ 1985-2012",
caption = "Nguồn: The World Bank")+
theme_fivethirtyeight() +
scale_color_fivethirtyeight()
## Warning: Removed 8 rows containing non-finite values (stat_smooth).
## Warning: Removed 8 rows containing missing values (geom_point).
## Warning: Removed 8 rows containing missing values (geom_text).
datRR <- rename(datRR, TNRR = NY.GDP.TOTL.RT.ZS)
a <- ggplot(data = datRR, aes(year, TNRR, color = country)) +
geom_line(size=1) +
geom_point(size=3, fill="white")
a + labs(x = NULL,
y = NULL,
title = "Hình 7: Tỉ lệ tô tài nguyên trong GDP giai đoạn 1985-2015",
subtitle = "Đơn vị tính: % của GDP",
caption = "Nguồn: The World Bank")+
#sắp xếp lại đơn vị hiển thị trên trục X
scale_x_continuous(breaks = seq(1985,2015,5)) +
theme_fivethirtyeight() +
scale_color_wsj()
mydf <- WDI(country = "all",
start = 2012,
end = 2013,
cache = NULL,
indicator = c(#Tổng dân số
"SP.POP.TOTL",
# Tổng GDP:
"NY.GDP.PCAP.CD",
# Lượng phát thải CO2
"EN.ATM.CO2E.KT",
#Tổng lượng phát thải khí nhà kính
"EN.ATM.GHGT.KT.CE"
))
d <- WDIcache()
d2 <- data.frame(d[[2]])
# Chỉ lấy dữ liệu năm 2025:
nam2012 <- mydf %>% filter(year == 2012)
View(nam2012)
#Lấy thêm cột biến về nhóm thu nhập cho các quốc gia
chung <- intersect(d2$country, nam2012$country)
u <- d2 %>%
filter(country %in% chung) %>%
arrange(country) %>%
mutate(country = as.character(country))
View(u)
nam2012 <- nam2012 %>%
filter(country %in% chung) %>%
arrange(country)
nam2012$Group <- u$income
#Ko lấy các quốc gia không rõ nhóm thu nhập (Loại Aggreagates)
nam2012 <- nam2012 %>% filter(Group != "Aggregates")
#Hiển thị một số quốc gia được chọn
note <- c("Vietnam", "China", "India", "Japan", "Thailand",
"United States", "Indonesia", "Malaysia", "France", "Quarta",
"Singapore", "Australia", "Russian Federation","Brazil",
"Kenya","United Arab Emirates", "Iceland", "Dominica",
"Timor Leste","Tuvalu","Bangladesh", "Zimbabwe","Haiti",
"Netherlands", "Norway","Bhutan", "Timor-Leste","Guam",
"Rwanda")
Biểu diễn mối quan hệ giữa GDP bình quân đầu người và lượng khí nhà kính của các quốc gia năm 2012, đồng thời quy mô dân số của mỗi quốc gia bằng độ lớn của đường tròn
ggplot(nam2012, aes(NY.GDP.PCAP.CD, EN.ATM.GHGT.KT.CE,
size = SP.POP.TOTL, #Lấy kích cỡ hình tròn là dân số
colour = Group)) + #Tô mầu theo nhóm thu nhập
geom_point(alpha = 1, show.legend = FALSE) + #Ko thể hiện legend
scale_size(range = c(0, 20)) + #Giới hạn kích cỡ của hình tròn
theme_fivethirtyeight() +
scale_color_wsj(palette = "colors6")+
# Điền tên các quốc gia vào hình vẽ
geom_text_repel(size = 3, aes(label = country), #chọn điền tên theo quốc gia
data = subset(nam2012, country %in% note), #điền tên dựa vào tên một số quốc gia đã tạo ở trên
colour = "black", #mầu chữ
force = 10) +
labs(x = "GDP bình quân đầu người (US$)",
y = "Lượng khí nhà kính (nghìn tấn CO2 quy đổi)",
title = "Hình 3: Mối quan hệ giữa khí nhà kính và GDP bình quân đầu người",
caption = "Nguồn: The World Bank, 2012")+
scale_x_continuous(limits = c(500, 64000), #Chọn số đo trục x trong khoảng 500 tới 64000
breaks = c(1000,4000,16000,64000), #Chỉ biểu diễn trục x bằng những số 1000, 4000, 16000 và 64000
trans= log2_trans(), # Đổi lại trục theo hệ tọa độ log2
# ý nghĩa: Cứ lên một đơn vị thì số mới gấp đôi số trước
labels = comma)+ # đánh dấu , để số cho dễ nhìn
scale_y_continuous(trans= log10_trans(),# đổi trục y theo hệ tọa độ log 10
breaks = c(100, 10000, 1000000), #Chỉ điền các số 100, 10000, 10000000 ở trục Y
labels = comma)+
stat_smooth(aes(group = 1), method = "lm", formula = y ~ x , #Thêm đường hồi quy bậc 1
se = FALSE, show.legend = FALSE)
## Warning: Removed 62 rows containing non-finite values (stat_smooth).
## Warning: Removed 62 rows containing missing values (geom_point).
## Warning: Removed 2 rows containing missing values (geom_text_repel).