R语言基础之绘图

一 图形输出

方法1:代码直接指定输出到指定文件中

 pdf("filename.pdf")/png("filename.png")/     --在当前工作目录将有名字为filename,后缀为pdf/png/jpeg/bmp/tiff/xfig/postscrip的文件。

...

dev.off()                                                            --将输出返回到终端。如果没有这句,图形就不会输出到文件filename.后缀。

注意:使用postscrip,需先安装包“grDevices

方法2:“plots"窗口导出

可导出格式为pdf/png/jpeg/tiff/bmp/Metafile/svg/eps;可以选择路径;指定输出图形的宽和高;甚至可以复制到粘贴板

方法3图形多窗口显示

可使用命令灵活控制图形输出窗口,如下:

dev.new() 新开一个图形窗口/dev.next()下一个窗口是哪个/dev.prev()前一个窗口是哪个/dev.off()关闭当前窗口

dev.set() 指定图形窗口为active,如dev.set(dev.prev())/dev.off() 关闭指定图形窗口(默认当前图形窗口)/graphics.off()关闭所有图形窗口

 图形参数

   图形参数在函数PAR()设置,以这种方式设定的参数值除非被再次修改,否则将在会话结束前一直有效。如下:

   opar <- par(no.readonly=TRUE)

   ……

   par(opar)

   图形参数基本可以分为两类,图形元素和属性,如下图:

R语言基础之绘图_第1张图片

       从图中可以看出,一个图形包括坐标轴范围(X坐标轴和Y坐标轴),坐标轴标签(X坐标轴标签和Y坐标轴标签),坐标轴刻度(X坐标轴刻度和Y坐标轴刻度),标题,副标题,图例,点,线等;为了图形的好看,会被这些图形元素加上颜色,大小等,即是属性。

       绘图即是如何用R语言将这些元素按照需求表达出来属性。在R语言中,绘图元素的表达可以是:

1)元素与属性的结合,“属性.元素”(属性 of元素),表示元素的属性,如col.labcol of lab)表示坐标轴标签的颜色。

 

颜色col

缩放倍数cex

字体font

标题main

col.main 标题的颜色

cex.main 标题的缩放倍数

font.main 标题的字体样式

副标题sub

col.sub   副标题的颜色

cex.sub   副标题的缩放倍数

font.sub   副标题的字体样式

坐标轴刻度axis()

col.axis 坐标轴刻度文字的颜色

cex.axis  坐标轴刻度文字的缩放倍数

font.axis   坐标轴刻度文字的字体样式

坐标轴标签lab

col.lab 坐标轴标签的颜色

cex.lab 坐标轴标签的缩放倍数

font.lab 坐标轴标签的字体样式

2)元素*属性,即元素与属性被设计成一起,将属性指定为某一数值,数值只是一个代号。如线条类型lty(既有元素线条,也有属性类型(用数字代表的已定义好的线条,1直线,2虚线等))、点符号pch、前景色/背景色(也可以算一个)等。

R语言基础之绘图_第2张图片

3)用绝对数值(有实际含义)表达元素的属性,如坐标轴范围,图形尺寸,边界大小、线条宽度(

以默认值的相对大小来表示的(默认值为1))等

元素

属性表示举例

坐标轴范围xlim,ylim

xlim=c(0, 60), ylim=c(0, 70)分别表示坐标轴xy的范围为0600~70

图形尺寸(宽和高)pin

pin=c(4,3)表示4英寸宽、3英寸高

边界大小("下、左、上、右")mai/mar

mai=c(1,.5, 1, .2)表示上下边界为1英寸、左边界为0.5英寸、右边界为0.2英寸

 

4)最复杂的一种情况是用函数自定义属性,如次要刻度线、参考线、图例、文本标注、标题

函数自定义元素

 属性表示形式

                   属性表示举例

次要刻度线minor.tick()

minor.tick(nx=n, ny=n, tick.ratio=n)

minor.tick(nx=2, ny=3, tick.ratio=0.5)

X轴、Y轴的每两条主刻度线之间分别添加1条、2条次要刻度线,次要刻度线的长度将是主刻度线的一半。

参考线abline()

abline(h=yvalues, v=xvalues)

abline(v=seq(1, 10, 2), lty=2, col="blue")

x13579的位置添加了垂直的蓝色虚线

图例legend()

legend(location, title, legend, ...)

legend("topleft", inset=.05, title="Drug Type", c("A","B")     

           lty=c(1, 2), pch=c(15, 17), col=c("red", "blue"))

文本标注text()mtext()

text(location, "text to place", pos, ...)

mtext("text to place", side, line=n, ...)

text(wt, mpg,row.names(mtcars),cex=0.6, pos=4, col="red")

标题Title(),包括main,sub,xlab,ylab

title(main="main title", sub="sub-title",

 xlab="x-axis label", ylab="y-axis label")

title(main="My Title", col.main="red",sub="My Sub-title",                   

      col.sub="blue", xlab="My X label", ylab="My Y label",   

       col.lab="green", cex.lab=0.75)


图形组合

 你可能希望按照自己的意志组织多个图形的摆放方式,下面这些方式可以实现:

1.组合多幅图形,并想象以矩阵的形式排列它们

在par()函数中使用图形参数mfrow=c(nrows, ncols)来创建按行填充的、行数为nrows、列数为ncols的图形矩阵。另外,可以使用nfcol=c(nrows, ncols)按列填充矩阵。

2.自定义所要组合的多个图形的所在位置,如一个图形可能比较长,占据矩阵的两列

函数layout()的调用形式为layout(mat),其中的mat是一个矩阵,它指定了所要组合的多个图形的所在位置。

3.为了更精确地控制每幅图形的大小,可以有选择地在layout()函数中使用widths=heights=两个参数。其形式为:

widths= 各列宽度值组成的一个向量

heights= 各行高度值组成的一个向量

4.图形布局的精细控制

使用图形参数fig

你可能感兴趣的:(R语言)