2010-10-21 13:28:03| 分类: R&Bioconductor | 标签: |举报 |字号大中小 订阅
http://jp021.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=cat%3dR%25e8%25af%25ad%25e8%25a8%2580%25e4%25b8%258e%25e7%25bb%259f%25e8%25ae%25a1%25e8%25ae%25a1%25e7%25ae%2597
绘图
第四部分主要讲述R中如何对数据或者模型作图,其中涉及到的命令非常重要而且很实用,尤其在写文章的时候经常需要使用到。一些比较值得注意的地方我都用红色标记出来了。 掌握了这些基本的命令以后, 再遇到复杂的问题就可以自己查文档解决,这个教程只是为扫盲而写,第一次的时候我已经说明了。 在mac下,R中关于作图显示的那个程序叫Quartz2。为什么叫这个名字呢? Quartz本来是石英的意思,好像跟R也没什么关系。 请你听我的故事。 在mac os x 的层次设计当中, 底层是Darwin(基于Freebsd),上面的那层是图形和多媒体层。在这层当中的一个主要的技术叫做Quartz,负责mac os x 的窗口管理和一些多媒体功能。 所以R也就借用了mac os x中的这个名字, 叫做Quartz2了。关于这个可参照一下macintosh中Xcode的帮助,关于mac os x的系统架构部分。 (个人觉得在mac下开发其实很享受,只不过种种原因,mac下的开发技术和windows相比略不成熟而已。)
问题一:基本图形命令,用R做点,线,坐标轴和图框(frames),并加上需要的文字
> plot( c(0,1), c(0,1), type = 'n' , xlab = '', ylab = '')
# 是不是发现没点显示在图上 ? 那么你请你注意到type这个参数了。 赶快 ?plot 看看为什么吧。
> par('col')
# par是干嘛的?par是parameter的简称,不错,就是用来修改图形参数的。 上面那句的意思是,看看默认的图是用什么颜色显示的。
> plot( 1:25 , pch = 1 : 25, xlab = 'Symbol Number', ylab = '')
# 回忆一下 1:25是什么意思,xlab用来设置x轴的名称
> lines( 1:25 , type = 'h' , lty = 'dashed')
# lines一看就知道是画线, 但是type='h'就让它画垂线,dashed让它画虚线。
> plot( 26 : 1, xlab = 'letters', ylab = '' , pch = letters , axes = FALSE, frame = TRUE )
# 显示一个字母序列,pch指定这一特征
> plot( c(1,7 ), c(0,1 ), type = 'n', axes = FALSE )
# 这个会出来一个比较奇怪的结果
> plot(c(1,7), c(0,1), type='n', axes=FALSE, xlab='Line Type (lty)', ylab='')
# 你再看看这个会出来什么
> box() # 把做的图用一个框框起来
> axis(1, at=1:6) # 把横轴画几个刻度
> for (lty in 1:6) lines(c(lty, lty, lty + 1), c(0, 0.5, 1), lty=lty)
# lty就是line type , 就是几种不同的线类型 ,快试试这个出现什么结果
# 下面我们看看如何在图中添加文字
> par( mfrow = c( 1,2 ) ) # 看看mfrow这个参数是做什么的
> plot(c(0,1), c(0,1), axes=FALSE, type='n', xlab='', ylab='')
> box()
> text( x = c(.2 , .5), y = c(.2 , .7 ) , c('example text' , 'another string' ) )
# 在上面画的框框当中写字
> title('(a)')
#在你的框框上面添加一个标题, 名称为(a)
> plot(c(0,1), c(0,1), axes=FALSE, type='n', xlab='', ylab='')
> box()
> text(locator(3), c('one','two','three'))
# 看看locator是干嘛的 。
> title('(b)')
#添加标题
# 下面教你怎么画线段
> plot(c(1,5), c(0,1), axes=FALSE, type='n', xlab='', ylab='') # 这个不用说了
> arrows(x0=1:5, y0=rep(0.1, 5), x1=1:5, y1=seq(0.3, 0.9, len=5), code=3)
> title('(a) arrows')
# 终于可以画线段了。x0,y0是箭头的起始坐标,x1,y1是箭头的终止坐标。seq的用法不用说了。code的不同对应着不同的箭头类型
# 最后一个参数是图的名字
> plot(c(1,5), c(0,1), axes=FALSE, type='n', xlab='', ylab='')
> segments(x0=1:5, y0=rep(0.1, 5), x1=1:5, y1=seq(0.3, 0.9, len=5))
# 画线段,用法和arrows()差不多的
> title('(b) segments')
评论