R语言的graphics功能(画图)


找了好久,终于找到了画各种统计图的画图工具,那就是R,本文主要介绍R中的各种图形绘制方法。R中有非常强大的绘图功能,本文也不能一一列举,如果想要具体了解,可在R中输入demo(graphic)或者demo(persp)查看。绘图函数需要将图输出到绘图设备上,绘图设备的形式有很多种,可以是窗口,可以是写入一个jpeg、bmp、tiff等图片文件格式,具体可用help(device)查看。


1. 打开多个绘图设备

前面已经提到,绘图设备有多重,如果是R中的窗口,可以用函数x11()来打开窗口,虽然x11是在linux下的叫法,但是在windows中也可以用该函数,当然也可以用windows打开;另外如果要打开不同的图形文件设备,可以用jpeg()/bmp()、tiff()等函数打开不同类型的文件设备。dev.list()可返还当前打开的所有的图形设备。dev.cur()返回当前的图形设备,还有dev.set(number)用于激活相应的图形设备,dev.next(),dev.prev()用于切换。dev.off()用于关闭当前设备,这个函数可以指定设备号来关闭,比如dev.off(1);用graphic.off()可以关闭所有的设备。

2. Graphic的分割

下面介绍的几个函数可以实现graphic的分割功能,但是这些都不是兼容的(即不能同时使用),

Screen:

用x11()等函数打开图形设备之后,就可以使用相应的screen函数了。

split.screen(c(2,2))该函数用于将screen分成2行2列,标识符按行分别从1到2*2标记,参数向量用于指定每个screen的标识符,注意不能分割太多,会造成图画不下的情况。

split.screen(c(1,2), screen=2)可以将子screen再次进行分割screen这个参数用于指定需要再次分割的标识符。

加下去就是画图了

screen(2)用于选中标识符为2的子屏幕,以后的画图函数都在2这个子屏幕中生效,如果2这个子屏幕中已经被画过了,它会清空已经画过的。如果不想清空 只需 screen(2, FALSE)即可

erase.screen(n=) 用于清空指定标识符上的图形

close.screen(n, all.screens =FALSE) 关闭屏幕,相当于清空了标识符,因此再也不能定位到相应的屏幕了

Layout:

相比screen函数,还有一个Layout,比screen更加灵活(理论上可以设置出任意的布局),也更加方便。

layout(mat, widths, heights):mat用于划分整个布局,如果mat中两块数字相同则布局显示时候会将那两块显示在一起。Widths和heights都是一个向量,长度分别和列数和行数相同,用来表示每一块列或者行的相对长度。如果要用绝对的,可用lcm(5)这个函数,返回5cm

layout.show(n)用来显示子窗口的个数。

在画图的时候,Layout中默认是bycolonm的,即画图时候,先画a[1,1].再a[1,2],再a[2,1]a[2,2],如果要a[1,1]之后是a[1,2]只要在matrix这个参数中指定byrow=TRUE即可。

3. 绘图函数

高级绘图函数:



> mat <- matrix(c(1:4), 2, 2)
> layout(mat)
> plot(1:10)
> text(5, 5, labels = "plot(1:10)")
> 
> plot(1:10, cos(1:10))
> text(5, 5, labels = "plot(1:10, cos(1:10))")
> 
> sunflowerplot(1:10, 1:10)
> 
> pie(c(0.1, 0.2, 0.3, 0.4))


> x11()
> layout(mat)
> boxplot(1:10)
> stripchart(1:10)


> x = 1:10
> y = 3:12
> z = x + y
> coplot(x~y|z)


好多函数啊!!!脖子酸了!!就不一一列举了,因为暂时还用不到,以后等用到了再贴进来吧!!

低级绘图函数:




4. 绘图参数

绘图参数可以作为图形函数的参数来指定相应的属性,这里来介绍一个另外的方法,par();

Par这个函数有如下参数,可以修改图形中的不同的属性:



绘图参数和低级作图函数使我们可以进一步改善图形。前面我们已经看到,一些绘图参数不允许作为plot这样的函数的自变量。我们可以用par()修改这些参数,这样就必须输入多行的命令。在改变绘图参数时,预先保存它们的初始值以便以后恢复十分有用,如下:


opar <- par()
par(bg="lightyellow", col.axis="blue", mar=c(4, 4, 2.5, 0.25))
plot(x, y, xlab="Ten random values", ylab="Ten other values",
	xlim=c(-2, 2), ylim=c(-2, 2), pch=22, col="red", bg="yellow",
	bty="l", tcl=-.25, las=1, cex=1.5)
title("How to customize a plot with R (bis)", font.main=3, adj=1)
par(opar)

R的graphics就介绍到这里,待实际使用的时候再慢慢去领悟。


优质内容筛选与推荐>>
1、demo
2、树与树算法
3、1011. A+B和C
4、JavaScript设计模式——单例模式
5、Python往kafka生产消费数据


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号