一个关于 R作直方图的小例子

来源:互联网 发布:mac u盘怎么重装系统 编辑:程序博客网 时间:2024/06/05 08:21

一个关于 R作直方图的小例子  

2010-04-27 19:31:36 分类: R&Bioconductor|举报|字号 订阅


http://liyinhao.ycool.com/post.3228142.html


首先是一串很简单的数据,有30个元素:
105  93  80 109112  88  98 100 116119  95  97  96107  89  80 81  69  85 86  88  90 91  86  81 86  88  82  95108

把它逐行打到一个TXT文件中去,命名为ex1.txt,保存在目录E:\Data下面。
然后打开R,
输入代码 setwd=("E:/Data")   
setwd()函数的作用是指定工作目录,这样以后进行文件读写的时候就可以直接引用工作目录下的文件名,而不用加上路径了。输入getwd()可以查看当前R的工作目录。
这里有个细节要注意,就是路径的分隔符一定要打斜杠/,不能按照WINDOWS里面的方式打反斜杠\,否则R会报错。

然后在R的控制台里继续输入 c<-scan("ex1.txt")
scan()是读取文件的函数,一般用来读按行贮存的数据的,返回值是一串向量。这里我们把ex1.txt里的数据赋给了变量c,赋值号是<-。

然后可以对向量c作直方图,hist(c)
输出结果就是这样:

hist()这个函数有很多参数的,这里介绍下breaks的用处先。
hist(c,breaks=seq(70,130,6))
breaks的作用就是规定直方图绘制时的单元格区间,seq(70,130,6)的意思是构建一组从70到130,公差为6的等差数列。
注意:有时候R会报错说breaks没有跨距整个'x'的范围,那是因为seq的计算方式决定的,例如seq(1,5,3)返回的是向量(1,4)而不是向量(1,4,7),避免这个问题的方法在于有时候把总区间规定的大些就行了。
效果如下:

然后问题就出现了,图中的坐标轴上的数值貌似是R自动分配的,也就是说hist()函数中我找不到任何的参数来改变坐标轴上的数字。于是我们只能借助于R中低位作图命令(low-levelplotting commands),低位作图作用于已有图形之上。

首先要不显示x轴和y轴的数值
输入hist(c,breaks=seq(70,130,6),xaxt="n",yaxt="n")

然后利用axis()重新绘制两条坐标轴:

axis(side=1,at=seq(70,130,6))
axis(side=2,at=seq(0,8,1))


其中参数side规定了绘制方向,1为x轴,2为y轴。
参数at则定义了坐标轴的数值,一般用向量表示。
其余的参数请自行查阅help。
最终效果如下


此外,hist()函数中的main参数可以修改直方图的标题,xlab和ylab可以修改坐标轴的描述。更多的自行查看帮助文档。个人觉得R-2.8.1的帮助文档做的超级到位,遇到不熟悉的函数输入?加函数名即可。例如?hist。

0 0
原创粉丝点击