R语言系列第六期:②R语言基本绘图(下)

有许多类型的图形对描述两变量间的关系很有帮助。

先把上一节的数据展示一下,方便回顾和利用:

YEAR(1960-2010):数据收集的年代。

UNEMPLOY:居民失业率,按百分比计算。

SURPLUS:联邦财政预算的盈余(正向)或亏损(负向),按当年国民生产总值的百分比计算。

PARTY:数据收集年份中总统所代表的的政党,其中R代表共和党,D代表民主党。

> year

 [1] 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971

[13] 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983

[25] 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995

[37] 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007

[49] 2008 2009 2010

> unemploy

 [1] 5.5 6.7 5.5 5.7 5.2 4.5 3.8 2.8 3.6 3.5 4.9 5.9 5.6 4.9 5.6

[16] 8.5 7.7 7.1 6.1 5.8 7.1 7.6 9.7 9.6 7.5 7.2 7.0 6.2 5.5 5.3

[31] 5.6 6.8 7.5 6.9 6.1 5.6 5.4 4.9 4.5 4.2 4.0 4.7 5.8 6.0 5.5

[46] 5.1 4.6 4.6 5.8 9.3 9.6

> surplus

 [1]   0.1  -0.6  -1.3  -0.8  -0.9  -0.2  -0.5  -1.1  -2.9   0.3

[11]  -0.3  -2.1  -2.0  -1.1  -0.4  -3.4  -4.2  -2.7  -2.7  -1.6

[21]  -2.7  -2.6  -4.0  -6.0  -4.8  -5.1  -5.0  -3.2  -3.1  -2.8

[31]  -3.9  -4.5  -4.7  -3.9  -2.9  -2.2  -1.4  -0.3   0.8   1.4

[41]   2.4   1.3  -1.5  -3.5  -3.6  -2.6  -1.9  -1.2  -3.2 -10.0

[51]  -8.9

> party

 [1] “R” “R” “D” “D” “D” “D” “D” “D” “D” “D” “R” “R” “R” “R” “R”

[16] “R” “R” “R” “D” “D” “D” “D” “R” “R” “R” “R” “R” “R” “R” “R”

[31] “R” “R” “R” “R” “D” “D” “D” “D” “D” “D” “D” “D” “R” “R” “R”

[46] “R” “R” “R” “R” “R” “D”

A. 散点图

当两个变量均为定量变量时即可使用散点图。用两个变量分别记录物品的两个特征,散点图可在直角坐标图上描绘变量组成的有序数对。(回归模型使用过)

> plot(surplus,unemploy,type=”p”,ylab=”unemployment”)

#Tips:通过图形显示,unemploysurplus之间的关系为:在盈余较大的年份中,伴有较低的失业率。但是不要急于下结论。这种关系并不一定是因果关系。可能这两个变量都是随其他的“潜”变量的变动而改变,也可能经济变量对政府政策的响应存在重要的时间滞后期。

可以说,散点图是科研中的战马,在原创科研报告中,常会出现大量的散点图及其他双变量图形。

B. 并列箱线图

下面我们来看一下总统的政党派别与经济变量之间的关系如何。若要依据属性进行分类后,对定量变量进行比较,那么绘制并列箱线图是一个有用的方法。对属性变量分类后,每个箱线图中仅包含特定类别中定量变量的几个数字。我们按变量party分类,绘制unemploy的并列箱线图。

> boxplot(unemploy~party,range=0,names=c(“Democratic”,”Republican”),boxwex=0.5,ylab=”Civilian unemployment”)

#Tips:可发现民主党总统与共和党总统预算年份中,失业率有非常明显的差异。当然,两部分数据有部分重合,但民主党执政的年份中,其失业率整体低于共和党。图形展示了定量变量(unemploy)和属性变量(party)之间的关联。若不存在关联或几乎不存在关联,则每个箱线图的五个特征点的高度应该差不多。

#Tips:箱线图语句的参数如下,其关键参数为unemploy~party,它是R参数中常见语句,大致意思是“按照执政党划分失业率”得到的结果是,箱线图函数根据不同的政党类别分别绘制图形。参数range=0将图的末端(须)延长至最大值和最小值。有时由于产生机制可能不同于其他原始数据,数据集中会含有“离群值”或极端的数据点。根据离群点的判断准则,箱线图的另一种形式仅将末端延伸到准则所定义的位置,并在末端外将意思离群点用符号单独标记。参数names=可对输出图形中各分类型变量的类别命名,参数boxwex=0.5将箱子的宽度设置为默认宽度的一半。

C. 条形图

条形图普遍应用于商学和管理学中,而在自然科学中并不经常用到。在R中,条形图很容易绘制。在最简单情况下,这些绘制图形的命令仅需要一个数值型向量作为参数。

我们用条形图并列展示民主党和共和党预算年的失业率均值。在R中,条形图命令barplot()需要一个数值型变量来对其绘制条形图。如果有多个数值那么会绘制多条结果,所以首先要计算出两个变量的均值,并将其组成向量进行绘图。

下面要设法将全部民主党和共和党在预算年的失业率从unemploy中分离出来。我们可以通过下面的程序代码来实现:

> unemp.D=unemploy[party==”D”]

> unemp.R=unemploy[party==”R”]

> D.mean=mean(unemp.D)

> R.mean=mean(unemp.R)

> mns=c(D.mean,R.mean)

> mns

[1] 5.247619 6.463333

> barplot(mns)

 

得到一个看上去很单调的条形图。想要更窄的条形,或添加标签,或增大条形间距,或带标签的更长的纵轴的话,可以进行如下修改:

> barplot(mns,xlim=c(0,1),width=0.1,ylim=c(0,7),

+ ylab=”average unemployment”,names.arg=c(“Dem”,”Rep”),space=2)

#Tipsxlim规定了x轴的起止点。当然,这里的x轴中没有标注数值。只是用来区分两组。Width设定条形宽度,使得条形的宽度为默认设置的0.1倍,参数ylim设定y轴的范围。names.arg为每个条形添加字符串作为标签。最后,参数space=2将条形的间距设置为条形宽度的2倍。

D. 饼图

饼图与条形图不同的是它重点展示的是组内的构成比,绘制饼图的pie()以向量为参数,其中向量中包含需要比较的数字。数字的相对大小由图中的扇形表示。饼图将总值作为整体,对各部分的百分比进行比较。在经济数据中,或许可看一下民主党和共和党在预算年中各自所占的百分比。

> num.yrs=c(length(unemp.D),length(unemp.R))

> num.yrs

[1] 21 30

> pie(num.yrs)

我们得到的图形看上去只提供了有限信息,可以在图形上加上一些描述性的标签。

> pie(num.yrs,labels=c(“Democratic”,”Republican”))

 

小结

上一部分和这个部分是给大家介绍了简单的画图操作,包括各种常用的图形的展示,在本章基本的绘图中,没有讲解色彩的使用。只有在饼图中扇形会自动添加默认颜色,除此之外,其他的颜色大多都是黑白的。我们会在之后的内容中为大家介绍颜色的使用。当然各种图形的设定肯定不止我们所列出来的这些内容,更多的参数和设定需要大家自己查阅手册或检索。

我们作图系列的第一部分内容简单绘图功能就到此为止了。我们高级绘图见吧。

参考资料:
1.《R语言统计入门(第二版)》 人民邮电出版社  Peter Dalgaard著
2.《R语言初学者指南》 人民邮电出版社  Brian Dennis著
3. Vicky的小笔记本《blooming for you》by  Vicky

生物信息学

手把手教你画漂亮的和弦图(上)

2019-5-11 14:02:05

生物信息学

生信领域顶级期刊

2019-5-15 22:27:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索