Thursday, November 19, 2015

Công bố quốc tế 2005-2014 của Mĩ, Nhật, Tàu, và Hàn

Tôi mới đọc một báo cáo của UNESCO về khoa học đến năm 2030, và thấy có vài dữ liệu thú vị để làm bài tập vẽ biểu đồ. Vấn đề đặt ra là xu hướng công bố quốc tế của 4 nước trên biến đổi ra sao trong thời gian 2005 đến 2014. Để trả lời câu hỏi đó, cách tốt nhất là vẽ biểu đồ “line graph” bằng R.

 

# Tạo data

USA = c(267521, 275884, 280806, 289769, 294630, 301826, 312374, 306688, 324047, 321846)

 

China = c(66151, 79740, 89068, 102368, 118749, 131028, 153446, 170189, 205268, 256834)

 

Japan = c(76950, 77083, 75801, 76244, 75606, 74203, 75924, 72769, 75870, 73128)

 

Korea = c(25944, 28202, 28750, 33431, 36659, 40156, 43836, 45765, 48663, 50258)

 

Country = c(rep("USA", 10), rep("China", 10), rep("Japan", 10), rep("Korea", 10))

Pubs = c(USA, China, Japan, Korea)

Year = c(2005:2014, 2005:2014, 2005:2014, 2005:2014)

dat = data.frame(Year, Country, Pubs)

dat

 

> dat

   Year Country   Pubs

1  2005     USA 267521

2  2006     USA 275884

3  2007     USA 280806

4  2008     USA 289769

5  2009     USA 294630

6  2010     USA 301826

7  2011     USA 312374

8  2012     USA 306688

9  2013     USA 324047

10 2014     USA 321846

11 2005   China  66151

12 2006   China  79740

13 2007   China  89068

14 2008   China 102368

15 2009   China 118749

16 2010   China 131028

17 2011   China 153446

18 2012   China 170189

19 2013   China 205268

20 2014   China 256834

21 2005   Japan  76950

22 2006   Japan  77083


# Gọi package ggplot2 và ggthemes để vẽ background theo kiểu tạp chí the economist

library(ggplot2)
require(ggthemes)
p = ggplot(data=dat, aes(x=as.factor(Year), y=Pubs, group=Country, colour=Country))

p = p + geom_line(size=.75) + geom_point()

p + scale_y_continuous(breaks=seq(10000, 350000, 50000)) + theme_classic() + xlab("Year") + theme_economist()

và kết quả là:



Các bạn có thể thử các hàm sau đây cho Việt Nam, Thái Lan và Mã Lai:


Vietnam = c(570, 656, 750, 943, 963, 1207, 1387, 1669, 2105, 2298)

Thailand = c(2503, 3089, 3710, 4335, 4812, 5214, 5790, 5755, 6378, 6343)

Malaysia = c(1559, 1813, 2225, 2852, 4266, 5777, 7607, 7738,  8925, 9998)

Country = c(rep("Vietnam", 10), rep("Thailand", 10), rep("Malaysia", 10))

Pubs = c(Vietnam, Thailand, Malaysia)

Year = c(2005:2014, 2005:2014, 2005:2014)

dat = data.frame(Year, Country, Pubs)


p = ggplot(data=dat, aes(x=as.factor(Year), y=Pubs, group=Country, colour=Country))

p = p + geom_line(size=.75) + geom_point()

p + scale_y_continuous(breaks=seq(0, 8000, 1000)) + theme_classic() + xlab("Year") + theme_economist()


No comments:

Post a Comment