R语言基础教程2:散点图

  • A+
所属分类:Script

先了解一个概念:函数。简单地说,把一些R语句(赋值、计算或其他操作步骤)包装起来并给它一个名称,这就是函数。我们前面接触过的getClass( ), class( ), head( ), rep( ), cbind( ), rbind( )等都是函数。显示(打印)对象也有函数print( ),但R有更简单的方法:输入对象名(数据对象或函数名)就可以显示其内容。函数一般都有参数。

R作图也是通过函数完成的,不同函数可以做出不同的图形,比如plot()函数可以做散点图、线状图,barplot()函数可以做出柱状图或条形图,pie()函数用于做饼形图。作图或者称数据可视化,是R的主要的功能之一。R语言虽然是一种计算机语言,但用R作图不一定要会编程,相当简单。

散点图是最基本的数据分析图形,我们就从它开始。

一、文件数据读取和保存

作图首先要有数据。为避免重复输入,我们一般将R使用的数据存成文本文件(txt文件)或逗号分隔符文件(csv文件),Excel里面有这样的保存选项。

好的R软件包一般都提供有一些供学习和举例用的样本数据,这些数据可以用data( )函数来查询。为方便说明,我们使用R(base包)提供的样本数据。先看看有些什么:

#...........(还有很多,节省篇幅不列了)

我们用trees数据来做散点图。先看看它是什么样的数据:

可以看到trees数据集是我们比较熟悉的数据框类型,有3个列变量。我们把它保存到D盘根目录。首先用setwd( )函数设置工作目录,它是R读取和保存文件的默认位置。注意:如果是反斜杠得用两个。下面两条语句效果都一样:

然后用write.csv( )函数保存成trees.csv文件:

用read.csv( )函数读取数据到the.data中:

read.csv函数读入的数据是数据框,多了表示序号的一列,不影响。如果嫌碍眼就去掉它。

二、快速作图法

用plot函数可以非常便捷地做出散点图:

R语言基础教程2:散点图

R的快速作图方式主要是针对数据关系的探索性分析的,不同类型的图完全可以显示出数据间的关系,同时避免了浪费时间在图形外观的设置上。如果想美化图形,也很容易。图形元素无非包括标题、坐标轴、点、线、图例等几个部分,外观包括形状、颜色、大小、宽度和字体等。

1、标题文字设置参数:main(主标题),sub(副标题),xlab(x轴标题)和ylab(y轴标题)

2、坐标轴有无:axes (TRUE/FALSE)

3、坐标轴区间参数:xlim,ylim

4、点类型参数:pch

5、线类型、宽度参数:lty,lwd

6、颜色设置参数:col, col.axis, col.lab, col.main, col.sub

7、大小(包括图形和字体)参数:cex, cex.axis, cex.main, cex.sub, cex.lab

8、如果点类型是空心点(pch=21-25),还可以设置内部填充颜色:bg参数

我们通过设置plot函数的参数做一个散点图:

R语言基础教程2:散点图

为了避免输入错误后重复打字,一般先把绘图语句写到文本文件,然后拷贝到R里面就可以了。有关的文本编辑器后面再推荐和介绍,现在可以先用自己熟悉的任何文本编辑器做这个事情。

三、分步作图法

上面的图形可以一步步进行。

1、先绘制只设置了点的图,轴不显示,坐标标题为空:

R语言基础教程2:散点图

2、添加其他图形元素(注意每执行一条语句后图形会马上有变化,中间过程的图形就不一一贴出了):

R语言基础教程2:散点图

可以看到,分步作图法可以获得对图形元素的更多控制,各个坐标轴、标签的颜色和字体大小都可以单独设置。还可以在上面图形的基础上添加其他的数据点(在前面作图时注意设置y轴的范围):

R语言基础教程2:散点图

注意:plot( )函数执行后会把图形区的其他东西全“擦”掉再新作图,这样的图形函数称为高水平图形函数;而box( ), title( ), axis( ), points( )这些函数只是在原有图形基础上添加东西,它们称为低水平图形函数。只有使用了高级图形函数产生图形区后才能使用低水平图形函数。各图形元素的低水平图形函数有:

1、添加标题(主、副标题和坐标轴标题):title( )

2、添加坐标轴:axis( )

3、添加数据点:points( )

4、添加线:lines( )

5、添加水平线或垂直线:abline( )

6、其他text( ), polygon( ), legend( )在后面介绍。

四、R base函数作图的特点

以上方法是用都是R基本绘图包(graphics包,已包含在R基本安装包里面)带的作图函数来做的,这个过程就像拿起画笔在一张白纸上画画,每个图形元素都可以自己去设计。因此R graphics包作图的特点也就体现出来了:R提供了丰富的图元控制函数和参数,可以方便地描绘出所需的每个元素。但是和我们普通作图不一样的是,R作图没有橡皮擦,做错了只能重新来过。但这应该不是什么问题,R作图是用语句来进行的,重用这些语句可以绘制出完全一样的图,这点正是科学绘图所需要的。

但是,R把图形元素的控制全交给了我们,虽然很自由,是不是也很麻烦?这恐怕也是很多人学R作图过程中退却的原因吧?但这些设置是有懒办法的:把常用的作图参数设置好并作为函数封装起来(类似与一些软件的宏操作),这样就可以一劳永逸了。《用R语言绘制y轴不连续的柱形图》中自编的gap.bar函数就是这样的一个例子,函数自定义的方法请参考《R语言基础教程6:程序设计基础》部分。

原文来自:http://blog.csdn.net/u014801157/article/details/24372325

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: