Bộ dữ liệu Gapminder trong R là một tập dữ liệu thu thập thông tin về phát triển kinh tế và xã hội của các quốc gia trên thế giới. Dữ liệu được thu thập bởi Hans Rosling, một bác sĩ và nhà giáo dục người Thụy Điển, và được cung cấp miễn phí cho cộng đồng R.
Bộ dữ liệu Gapminder có 1704 quan sát được phân tích từ năm 1952 đến năm 2007. Bao gồm 6 biến:
country: Tên quốc gia
continent: Lục địa
year: Năm
lifeExp: Tuổi thọ trung bình
pop: Dân số
gdpPercap: GDP bình quân đầu người
ggplot(y, aes(x = year, y = gdpPercap)) +
geom_col() +
labs(title = "GDP trung bình theo năm", x = "Năm", y = "GDP")Từ biểu đồ trên ta có thể thấy, GDP bình quân đầu người đều tăng qua các năm
ggplot(data = y, aes(x = continent, y = gdpPercap, fill = continent)) +
geom_bar(stat = "identity") +
labs(x = "Lục địa", y = "GDP", title = "Biểu đồ cột GDP theo lục địa", fill = "Lục địa") +
scale_fill_discrete(breaks = c("Africa", "Asia", "Europe", "Americas", "Oceania"), labels = c("Châu Phi", "Châu Á", "Châu Âu", "Châu Mỹ", "Châu Đại Dương"))Từ biểu đồ trên ta có thể thấy, GDP trung bình ở Châu Âu là cao nhất, thấp nhất là ở Châu Đại Dương
ggplot(y, aes(x = year, y = gdpPercap, fill = continent)) +
geom_col() +
labs(title = "GDP của các lục địa theo năm", x = "Năm", y = "GDP bình quân đầu người", fill = "Lục địa")Từ biểu đồ trên ta có thể thấy, Châu Âu có GDP cao nhất và đều tăng qua các năm. Châu Đại dương có GDP thấp nhất, hầu như tăng rất ít qua từng năm
ggplot(data = y, aes(x = gdpPercap, y = year, color = country)) +
geom_point(size = 3) +
labs(x = "GDP bình quân đầu người", y = "Năm", title = "Biểu đồ phân tán GDP theo năm", color = "") +
scale_color_discrete(breaks = c("China", "India", "Indonesia", "Brazil", "United States"), labels = c("Trung Quốc", "Ấn Độ", "Indonesia", "Brazil", "Mỹ"))Từ biểu đồ trên ta có thể thấy GDP ở 5 quốc gia (Trung Quốc, Ấn Độ, Indonesia, Brazil, Mỹ) chủ yếu tập trung trong khoảng từ 0 - 30000 USD và mức độ phân tán GDP của 5 quốc gia đều tăng theo các năm. Đáng chú ý là Indonesia, với mức độ phân tán mạnh, trong những năm 90, GDP bình quân đầu người trong những năm 1950 - 1965 ở Indonesia cao hơn hẵn các nước còn lại, hơn 90000 USD
ggplot(data = y[y$country %in% c("China", "India", "Indonesia", "Brazil", "United States"), ], aes(x = year, y = gdpPercap, group = country)) +
geom_line() +
labs(x = "Năm", y = "GDP bình quân đầu người", title = "Biểu đồ xu hướng GDP theo thời gian") +
facet_wrap(~country)Từ biểu đồ trên, ta có thể hiểu rõ hơn về tốc độ tăng trưởng GDP ở 5 quốc gia (Trung Quốc, Ấn Độ, Indonesia, Brazil, Mỹ). Mỹ có tốc độ tăng trưởng GDP cao nhất qua các năm, trong khi đó các quốc gia còn lại có tốc độ tăng trưởng GDP ở mức chậm hơn hẵn
Từ biểu đồ trên ta có thể thấy, tuổi thọ trung bình cao nhất của các quốc gia đang phân tích rơi vào khoảng 70 tuổi
ggplot(data = y, aes(x = continent, y = lifeExp, fill = continent)) +
geom_bar(stat = "identity") +
labs(x = "Lục địa", y = "Tuổi thọ", title = "Biểu đồ cột tuổi thọ theo lục địa", fill = "Lục địa") +
scale_fill_discrete(breaks = c("Africa", "Asia", "Europe", "Americas", "Oceania"), labels = c("Châu Phi", "Châu Á", "Châu Âu", "Châu Mỹ", "Châu Đại Dương"))Từ biểu đồ trên ta thấy, Châu Phi là lục địa có tuổi thọ trung bình cao nhất và Châu Đại Dương là lục địa có tuổi thọ trung bình thấp nhất
ggplot(y, aes(x = year, y = lifeExp)) +
geom_col() +
labs(title = "Tuổi thọ trung bình theo năm", x = "Năm", y = "Tuổi thọ")Từ biểu đồ trên ta có thể thấy được, tuổi thọ trung bình ở các quốc gia đều tăng theo từng năm. Một phần là do càng về sau, các quốc gia càng phát triển nên con người có điều kiện sống và chăm sóc sức khỏe tốt hơn, vì thế tuổi thọ tăng cao hơn.
ggplot(y, aes(x = year, y = lifeExp, fill = continent)) +
geom_col() +
labs(title = "Tuổi thọ trung bình của các lục địa theo năm", x = "Năm", y = "Tuổi thọ trung bình", fill = "Lục địa")Từ biểu đồ trên ta có thể thấy, Châu Phi là châu lục có tuổi thọ trung bình cao nhất. Và Châu Đại Dương là châu lục có tuổi thọ trung bình thấp nhất, có thể một phần là do vị trí địa lý không thuận lợi và y tế không phát triển nhiều như các châu lục khác
ggplot(data = y[y$country %in% c("China", "India", "Indonesia", "Brazil", "United States"), ], aes(x = year, y = lifeExp, group = country)) +
geom_line() +
labs(x = "Năm", y = "Tuổi thọ", title ="Biểu đồ xu hướng tuổi thọ theo thời gian") +
facet_wrap(~country)Từ biểu đồ trên ta có thể thấy, hầu hết các quốc gia (Trung Quốc, Ấn Độ, Indonesia, Brazil) đều có tuổi thọ trung bình tăng dần từ 40-80 tuổi. Tuy nhiên, Mỹ là quốc gia có tuổi thọ trung bình cao nhất qua các năm từ khoảng 65-80 tuổi, vì thể nên có thể nói Mỹ là quốc gia có dân số già nhiều nhất vì kinh tế lẫn dịch vụ ở đây phát triển sớm hơn hẵn các quốc gia còn lại
ggplot(y, aes(x = year, y = pop)) +
geom_col() +
labs(title = "Dân số trung bình theo năm", x = "Năm", y = "Dân số")Từ biểu đồ trên ta có thể thấy, mật độ dân số tăng dần qua từng năm
ggplot(y, aes(x = year, y = pop, fill = continent)) +
geom_col() +
labs(title = "Dân số trung bình của các lục địa theo năm", x = "Năm", y = "Dân số trung bình", fill = "Lục địa")Từ biểu đồ trên ta có thể thấy, Châu Á có mật độ dân số cao nhất và đều tăng qua các năm. Châu Đại dương có mật độ dân số thấp nhất, hầu như tăng rất ít qua từng năm
ggplot(data = y[y$country %in% c("China", "India", "Indonesia", "Brazil", "United States"), ], aes(x = year, y = pop, group = country)) +
geom_line() +
labs(x = "Năm", y = "Dân số", title = "Biểu đồ xu hướng dân số theo thời gian") +
facet_wrap(~country)Từ biểu đồ trên ta có thể thấy, Trung Quốc là quốc gia có tốc độ gia tăng dân số nhanh và cao nhất trong các năm từ 1950-2000, tiếp theo là Ấn Độ. Các quốc gia còn lại mỗi năm dẫn số đều tăng nhưng tăng không đáng kể
ggplot(data = y, aes(x = continent, y = pop, fill = continent)) +
geom_bar(stat = "identity") +
labs(x = "Lục địa", y = "Dân số", title = "Biểu đồ cột dân số theo lục địa", fill = "Lục địa") +
scale_fill_discrete(breaks = c("Africa", "Asia", "Europe", "Americas", "Oceania"), labels = c("Châu Phi", "Châu Á", "Châu Âu", "Châu Mỹ", "Châu Đại Dương"))Từ biểu đồ trên ta có thể thấy, Châu Á là châu lục có mật độ dân số nhiều nhất, Châu Đại Dương có mật độ dân số thấp nhất, có thể do đây là châu lục nhỏ nhất và không có nhiều điều kiện so với các châu lục còn lại. Mật độ dân số ở Châu Phi, Châu Mỹ và Châu Âu không có sự chênh lệch nhiều
ggplot(y, aes(x = gdpPercap, y = lifeExp)) +
geom_point() +
geom_smooth(method = "lm") +
labs(title = "Mối quan hệ giữa GDP và tuổi thọ", x = "GDP bình quân đầu người", y = "Tuổi thọ trung bình")## `geom_smooth()` using formula = 'y ~ x'
Từ biểu đồ trên ta thấy, đường hồi quy dốc lên (tương quan dương), vì thế nên khi GDP bình quân đầu người tăng, tuổi thọ trung bình cũng có xu hướng tăng.
ggplot(y, aes(x = gdpPercap, y = continent)) +
geom_point() +
geom_smooth(method = "lm") +
labs(title = "Mối quan hệ giữa GDP và lục địa", x = "GDP bình quân đầu người", y = "Lục địa")## `geom_smooth()` using formula = 'y ~ x'
Từ biểu đồ trên ta thấy, đường hồi quy nằm ngang, điều đó có nghĩa là không có mối quan hệ tuyến tính giữa GDP bình quân đầu người và lục địa. Tức là, số lượng các lục địa không thay đổi khi GDP bình quân đầu người thay đổi
ggplot(y, aes(x = gdpPercap, y = pop)) +
geom_point() +
geom_smooth(method = "lm") +
labs(title = "Mối quan hệ giữa GDP và dân số", x = "GDP bình quân đầu người", y = "Dân số")## `geom_smooth()` using formula = 'y ~ x'
Từ biểu đồ trên ta có thể thấy đường hồi quy dốc xuống (tương quan âm), điều đó cho thấy khi dân số tăng, GDP bình quân đầu người có xu hướng giảm
group_by(y, continent) %>% summarise(n = n()) %>%
ggplot(aes(x = '', y = n, fill = continent)) +
geom_col(color = 'black') +
coord_polar('y') +
geom_text(aes(x = 1.3, label = n), position = position_stack(vjust = .5)) +
theme_void() Từ biểu đồ trên ta có thể thấy, Châu Phi có độ bao phủ bởi các quốc gia lớn nhất, đây cũng là châu lục có nhiều quốc gia nhất thế giới, với 52 quốc gia (tính ở thời điểm năm 1952)
ggplot(data = y, aes(x = gdpPercap, y = lifeExp, color = country)) +
geom_point(size = 3) +
labs(x = "GDP bình quân đầu người", y = "Tuổi thọ", title = "Biểu đồ phân tán tuổi thọ và GDP", color = "") +
scale_color_discrete(breaks = c("China", "India", "Indonesia", "Brazil", "United States"), labels = c("Trung Quốc", "Ấn Độ", "Indonesia", "Brazil", "Mỹ"))Từ biểu đồ trên ta có thể thấy, tuổi thọ trung bình của 5 quốc gia (Trung Quốc, Ấn Độ, Indonesia, Brazil, Mỹ) phân tán dựa trên GDP cao nhất là ở độ tuổi từ 60-80 và GDP từ 0-30000 USD.
ggplot(data = y, aes(x = gdpPercap, y = pop, color = continent)) +
geom_point(size = 3) +
labs(x = "GDP bình quân đầu người", y = "Dân số", color = "Lục địa", title = "Biểu đồ phân tán dân số và GDP bình quân đầu người") +
scale_color_discrete(breaks = c("Africa", "Asia", "Europe", "Americas", "Oceania"), labels = c("Châu Phi", "Châu Á", "Châu Âu", "Châu Mỹ", "Châu Đại Dương"))Từ biểu đồ trên ta có thể thấy, mức độ phân tán dân số dựa trên GDP của 5 châu lục chủ yếu tập trung trong khoảng từ 0-50000 USD, với mật độ dân số không quá cao. Nhưng đặc biệt là Châu Á, dân số phân bố nhiều ở mức GDP khoảng 0-20000 USD và phân bố rải rác ở mức GDP từ 60000-100000 USD