本次样例使用数据来自:http://www.stat.ubc.ca/~rickw/gapminderDataFiveYear.txt

数据内容为以5年为间隔的世界经济数据统计,数据项包含国家,年份,人口,所在大洲,寿命期望,人均GDP

X <- read.delim("http://www.stat.ubc.ca/~rickw/gapminderDataFiveYear.txt")
#显示数据基本元素
str(X)
## 'data.frame':    1704 obs. of  6 variables:
##  $ country  : Factor w/ 142 levels "Afghanistan",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ year     : int  1952 1957 1962 1967 1972 1977 1982 1987 1992 1997 ...
##  $ pop      : num  8425333 9240934 10267083 11537966 13079460 ...
##  $ continent: Factor w/ 5 levels "Africa","Americas",..: 3 3 3 3 3 3 3 3 3 3 ...
##  $ lifeExp  : num  28.8 30.3 32 34 36.1 ...
##  $ gdpPercap: num  779 821 853 836 740 ...
#原始数据的散点图
qplot(gdpPercap, lifeExp, data=X)

#观察到数据的分布,我们利用log函数改变图形分布
qplot(gdpPercap, lifeExp, data=X, log = "x", color = year)

#make it more colorful
qplot(gdpPercap, lifeExp, data=X, log = "x", color = factor(year))

#利用气泡图显示人口多少(很容易找到我国...)
qplot(gdpPercap, lifeExp, data=X, log = "x", color = year, size = pop)

#利用形状区分各洲数据(非洲人民苦难多——寿命偏低啊)
qplot(gdpPercap, lifeExp, data=X, log = "x", color = year, shape = continent)

#利用光滑曲线显示预期寿命与人均GDP的关系(氪金续命...)
qplot(gdpPercap, lifeExp, data=X, log = "x", alpha=I(0.5), geom=c("point", "smooth"))

#利用线性回归来进一步计算寿命与gdp的拟合关系
ggplot(X,aes(x = log(X$gdpPercap),y=X$lifeExp)) + geom_point(shape=19) +
    xlab("gdpPercap") + ylab("lifeExp") + geom_smooth(method = lm)

#将同一年份寿命预期连线,可以发现随时间推移,平均寿命的增长
qplot(gdpPercap, lifeExp, data=X, log = "x", alpha=I(0.5), color=year, geom=c("point", "path"))

#进一步地,可以利用箱线图进行分析寿命变化
X$year.fac <- factor(X$year)
qplot(year.fac, lifeExp, data=X, color=I("red"), geom="boxplot")

#那么图中1992的离群点到底发生了什么....
strangeExp=min(X$lifeExp[X$year==1992])
example=X[X$lifeExp==23.599,]
head(example)
##      country year     pop continent lifeExp gdpPercap year.fac
## 1293  Rwanda 1992 7290203    Africa  23.599  737.0686     1992
#我们发现这个国家是卢旺达,唔,让我想起来一部叫《卢旺达大饭店》的电影,而这个离群数据的统计时间是1992-1997,基本符合猜测。

#此外我们还可以根据年份绘出散点图
qplot(year.fac, lifeExp, data=X, color=I("red"), geom="jitter")

#下面我们还可以根据大陆来观察寿命分布(非酋vs欧皇的寿命比拼)
qplot(lifeExp,data=X, geom="histogram", fill=continent)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

#相关地,我们还可以展示出密度曲线的结果
qplot(lifeExp,data=X, alpha=I(0.5), geom="density", color=continent)

#进一步,我们们可以将密度曲线格局各个大洲分开显示
qplot(lifeExp,data=X, geom="density", facets=continent~.)

#最后,我们可以绘制显示多维数据的统计图
qplot(lifeExp,data=X, geom="histogram", facets=year~continent)
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.