简单易懂,事半功倍。
提高接受率,人人国自然!

R语言系列第六期: ①R语言基本绘图(上)

大家公认的就是R是一款绘图功能非常强大的软件,那我们从这个系列开始专门来给大家说说R作图的部分。其实我们在统计描述的系列里已经穿插了许多简单画图的内容,这部分就带大家回归一下之前的内容,顺便补充一些其他的图形绘制方法。

首先,我们绘图的数据是关于经济学和政治学的数据。解释一下四个变量:

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

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

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

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

下面需要将每一列数据集作为向量输入R中。

> year=1960:2010

> unemploy=c(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,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,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,5.1,4.6,4.6,5.8,9.3,9.6)

> surplus=c(0.1,-0.6,-1.3,-0.8,-0.9,-0.2,-0.5,-1.1,-2.9,0.3,-0.3,-2.1,-2,-1.1,-0.4,-3.4,-4.2,-2.7,-2.7,-1.6,-2.7,-2.6,-4,-6,-4.8,-5.1,-5,-3.2,-3.1,-2.8,-3.9,-4.5,-4.7,-3.9,-2.9,-2.2,-1.4,-0.3,0.8,1.4,2.4,1.3,-1.5,-3.5,-3.6,-2.6,-1.9,-1.2,-3.2,-10,-8.9)

> party=c(rep(“R”,2),rep(“D”,8),rep(“R”,8),rep(“D”,4),rep(“R”,12),rep(“D”,8),rep(“R”,8),”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. 带状图

带状图(点图)是用来将定量变量中的数值进行简单展示的图形。

> stripchart(unemploy,xlab=”Percent civilian unemployment 1960-2010″,

+ method=”stack”,pch=1,cex=3)

#Tips:带状图的语句含有几个参数。第一个参数是绘图时所使用的数据向量,这里是unemploy。参数xlab是用来将引号内的字符串作为x轴的描述性标签。参数method=stack”将图形中相等的数字垂直堆砌起来,使所有数据都能被展示出来。参数pch=1将图形的符号设置成圆圈。在R中默认的图形是方形。最后cex=3将圆圈的大小改为默认大小的3倍。

我们可以研究下图形,发现这些原始数据变得生动起来。可以看一下自1960年以来,失业率情况如何。有少数几年的失业率达到9%以上,在较好的年份中,失业率在4%一下;大多数的年份失业率在4%8%之间。

B. 直方图

在研究中,不同类型的图形可用来强调数据不同方面的特征。也许有人希望能通过更好的展示图形来比较失业率在9%以上、4%以下、在5%6%之间的年份的频率。直方图即可做到这点。在某一间隔内,直方图用一个长方形来表示该间隔内数据点的数量,长方形的面积即为数量。

> hist(unemploy,main=” “,xlab=”Percent civilian unemployment 1960-2010”)

#Tips:参数main=“”引号内表示主标题,而我们如此使用表示隐藏主标题,其他参数同stripchart()函数。若有需要,用户可以自定义柱子之间的间隔,breaks=c(3,4,6,8,9,10)

C. 茎叶图

茎叶图可巧妙地将变量中的实际数字用类似于直方图的形式展示出来。

> stem(unemploy)

  The decimal point is at the |

  2 | 8

  3 | 568

  4 | 0255667999

  5 | 12345555666678889

  6 | 0112789

  7 | 01125567

  8 | 5

  9 | 3667

#Tips:茎叶图是一个典型的结构图,对至少有两位数字的数据,都可再现其原始数据。每个数据点都有一个茎和一个叶。图中左侧的一列数字为茎,右侧向右平行延伸出来的数字是叶。

D. 箱线图

箱线图依赖于向量中所有数据的5个概括性数值。首先是最容易理解的两个数,最大值和最小值。第三个数为数据的中位数,它是用来定义数据中心的一种方法。

> min(unemploy)

[1] 2.8

> max(unemploy)

[1] 9.7

> median(unemploy)

[1] 5.6

通过这三个数字已经可以大概知道数据是什么样的了。失业率范围从2.8%9.7%,失业率大于和小于5.6%的年份基本各占一半。

箱线图另外两个数字很简单:以全部数据的中位数为界,小于该值的数据的中位数和大于该值的中位数。这两个数字成为第25百分位数和第75百分位数,第一个数字大于大约25%的数据,第二个数字大于大约75%的数据。

> boxplot(unemploy)

当然也可以添加横纵轴的标签。

> boxplot(unemploy,ylab=”Percent civilian unemployment 1960-2010″)

#Tips:在得到的箱线图中,盒子的两端是第25级第75百分位数,“胡须”的两端为最大值及最小值,中位线则用一条线来表示。在图中可看到图形并不是对称的,失业率的中位数更靠近下端,远离上端。数据中较大值与较小值的非对称分布成为偏度。

E. 时序图

变量unemploy是一个时间序列:它的值是按照时间顺序记录的。变量surplus也是一个时间序列。时序图是一个关于时间的变量(通常为纵轴)和时间(通常为横轴)的简单直角坐标图,他对研究时间变量的趋势和模式非常有用。时序图本质上是双变量图形:时间序列和时间,但是研究时无需关注时间变量的变化,而是将重点放在时间序列变量上。

时序图是将变量值及其相应的时间作为点在直角坐标系中绘制。其关键在于使用什么符号来描绘图形,建议仅用线段将各点连接,但不用符号将各点本身标出,这样可使图形看上去清晰。

> plot(year,unemploy,type=”l”,xlab=”Year”,ylab=”Civilian unemployment”)

 

#Tips:我们可以从时序图中看到随时间波动的情况,失业率的波峰波谷可以明显地显现出来。Type代表的是画图的类型。“l”代表连线的方式。

上述的内容大家也可以保存到脚本里,每次做相同的图形的时候只要运行改变参数的脚本就可以画出对应的图形。当然并不是所有的图形都是只用一个变量就能画出来的,双变量的绘图我们下期在为大家讲解。

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

除特别注明外,本站所有文章均为SCI666原创,转载请注明出处,谢谢。sci666 » R语言系列第六期: ①R语言基本绘图(上)

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

SCI666 学习、交流、分享

生信分析交流群综合科研交流群
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活