绘图基础–设备与参数

2018-09-03

2018-09-03
R语言绘图基础

1 绘图设备


  R语言中的绘图设备包含两种:窗口和图形设备。其中窗口设备为X11类(X Window系统),图形设备可包含多种输出格式pdf、metafile、 png、 jpeg、 bmp、 tiff、 xfig和postscript等。使用窗口设备绘图图形直接输出到RUI的子窗口中,使用图形设备则输出到文件中,缺省设备为窗口设备,输入绘图命令时,打开一个绘图窗口,后续绘图均使用该绘图窗口。

1.1 绘图设备操作

1)绘图设备打开

方法一:X11()

方法二:win.graph()

方法三:dev.new()

2)显示绘图设备信息

dev.list()

显示当前绘图设备有几个图形创建或打开。

3)显示当前设备编号

**dev.cur()%%

显示当前绘图设备类型及设备号。

4)关闭指定设备号的绘图设备

dev.off(2)

5)关闭所有的绘图设备和窗口

graphics.off()

1.2 绘图输出效果

  绘制好的图形,一般使用复制剪贴即可对图形进行保存。在图形的字体等显示上需要进行一定的设置。输出的图形格式等,可以进行一定的调节。

设定背景颜色

  bg用于设定绘图区域的背景颜色。当通过函数par()调用时,会同时设定参数new=FALSE。对很多设备来说,该参数的初始值就是该设备的背景颜色值,其他情况下一般为“white”。需要注意一点的是,一些图形函数例如plot.default和points等也有名为bg的参数,但是代表的含义是不同的。这里设置的只是可以画背景色的点的背景色,而不是设置整幅图形的背景色,bg指定背景色(例如bg=“red”, bg=“blue”; 用colors()可以显示657种可用的颜 色名)

设定图形边框

  bty控制图形边框形状,可用的值为: “o”, “l”, “7”, “c”, “u” 和“]” (边框和字符 的外表相像);这些字符本身的形状对应着边框样式,比如(默认值)o表示四条边都显示,而c表示不显示右侧边如果bty=“n”则不绘制边框box()在当前的图上加上边框。

文本设置

  cex控制缺省状态下符号和文字大小的值,用于表示对默认的绘图文本和符号放大多少倍。需要注意一些绘图函数如plot.default等也有一个相同名字的参数,但是此时表示在函数par()的参数cex的基础上再放大多少倍,此外还有函数points等接受一个数值向量为参数。默认值为1,如果设为1.5,则表示比默认大小大50%,若设为0.5,则表示比默认值小50%。

2 绘图参数含义


  mfrow, mfcol 设置一页多图;取值形式c(nrow, ncol)长度为2的向量,分别设置行数和列数,分割绘图窗口为nr行nc列的矩阵布局,按列次序使用各子窗口

  col 图中符号(点、线等)的颜色,多数时候用于设定默认的绘图颜色

  lab 设置坐标轴刻度数目(R会尽量自动“取整”2);取值形式c(x, y,len):x和y分别设置两轴的刻度数目,len目前在R中尚未生效,因此设置任意值都不会有影响(但用到lab参数时必须写上这个参数)1对于添加文本,text()函数及其

  xlab x轴标题,ylab是y轴标题。xlim是 x轴取值范围,ylim是 y轴取值范围

  main 主标题;也可以在作图之后用函数title()添加上

  text指定的文字,用side指定添加到哪一边(参照 下面的axis());line指定添加的文字距离绘图区域的行数.在给定坐标的位置写字。text(x, y, labels,…)在(x,y)处添加用labels指定的文字;典型的用法是: plot(x, y, type=”n”); text(x, y, names)

  title()添加标题,也可添加一个副标题

  sub 副标题

  legend():除了利用x,y设置图例的坐标外,用”topleft”, “center”,“bottomright”等设置位置非常方便。ncol设置图例的列数, horiz设置图例的排列方向。

  round“时,表示端点样式为圆角(默认值);为1或者”butt“时,表示端点直接截断;为2或者”square“表示延伸末端。如代码:

  mgp 设置坐标轴的边界宽度;取值长度为3的数值向量,分别表示坐标轴标题、坐标轴刻度线标签和坐标轴线的边界宽度(受mex的影响),默认为c(3, 1, 0).

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

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

  cex.main 图主标题的缩放倍数

  cex.sub 图副标题的缩放倍数

  col.axis 坐标轴刻度标记的颜色

  col.lab 坐标轴标题的颜色

  col.main 图主标题的颜色

  col.sub 图副标题的颜色

  font控制文字字体的整数(1: 正常,2: 斜体,3: 粗体,4: 粗斜体)

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

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

  font.main 图主标题的字体样式

  font.sub 图副标题的字体样式

  frame.plot 是否给图形加框,它与box()函数作用类似但功能更详细。

  family 设置文本的字体族(衬线、无衬线、等宽、符号字体等);

  vfont参数可以设置更为详细的字体族和字体样式

  las 坐标轴标签样式;取0、1、2、3四个整数之一,分别表示“总是平行于坐标轴”、“总是水平”、“总是垂直于坐标轴”和“总是竖直”。

  lend 线条末端的样式(圆或方形);取值为整数0、1、2.

  lheight 图中文本行高;取值为一个倍数,默认为1

  ljoin 线条相交处的样式;取值为整数0、1、2之一(或相应的字符串’round’,‘mitre’, ‘bevel’),分别表示画圆角、画方角和切掉顶角/

  log 坐标是否取对数,TRUE或者FALSE

  las,只能是0,1,2,3中的某一个值,用于表示刻度值的方向。0表示总是平行于坐标轴;1表示总是水平方向;2表示总是垂直于坐标轴;3表示总是垂直方向。

  mar控制图形边空的有4个值的向量c(bottom, left, top, right)

  mex 设置坐标轴的边界宽度缩放倍数;默认为1,本参数会影响到mgp参数

  mtext():为四个坐标轴添加标签。mtext(text,side=3, line=0,…)在边空添加用

  oma 设置外边界(Outer Margin)宽度.

  omi,和参数oma的作用一样,只是这次参数的单位为英寸。

  points():pch设置点的类型。

  pty 设置作图区域的形状;默认为’m’:尽可能最大化作图区域;另外一种取值’s’表示设置作图区域为正方形.

  panel.first 在作图前要完成的工作;这个参数常常被用来在作图之前添加背景网格或者添加散点的平滑曲线,如panel.first= grid().

  ps控制文字大小的整数,单位为磅(points)

  pin,当前的维度,形式为c(width,height),单位为英寸。

  rug(x)在x-轴上用短线画出x数据的位置,,只支持函数text。

  srt 字符串的旋转角度;取一个角度数值.

  segments(x0, y0,x1, y1)从(x0,y0)各点到(x1,y1)各点画线段

  tck 指定轴上刻度长度的值,单位是百分比,取值为与图形宽高的比例值(0到1之间)以图形宽、高中最小一个作为基数; 如果tck=1则绘制grid坐标轴刻度线的高度;正值表示向内画刻度线,负值表示向外.

  tcl 坐标轴刻度线的高度;取一个与文本行高的比例值;正负值意义类似tck,默认值为-0.5,即向外画线,高度为半行文本高;观察图3.1左下角小图的坐标轴刻度线

  usr 作图区域的范围限制,取值长度为4的数值向量c(x1, x2, y1, y2),分别表示作图区域内x轴的左右极限和y轴的下上极限;注意,如果采用的对数刻度(如par(“xlog”)=TRUE),那么x坐标轴的表示范围为10^par(“usr”)[1:2],同样也可以得到y坐标轴的表示范围。

3 绘图符号


3.1 pch值

  R的图形主要由:主体、坐标轴、坐标标题、图表题组成。 图形参数主要有:尺寸、边界、布局、颜色等组成。

plot(1:26,pch=1:25,cex=2.5,bg="blue", main="pch符号图",xlab="pch编码")#显示符号数值

  从上图可以看出,随着数值增加,pch符号在发生变化。pch 点的符号;pch = 19)实圆点、pch = 20)小实圆点、pch = 21)圆圈、pch = 22)正方形、pch = 23)菱形、pch = 24)正三角尖、pch= 25)倒三角尖,其中,21-25可以填充颜色(用bg参数)

3.2 lty线型

  可以是整数(1: 实线,2: 虚线,3: 点线,4: 点虚线,5: 长虚线,6: 双虚线),或者是不超过8个字符的字符串(字符为从“0”到“9”之间的数字)交替地指定线和空白的长度,单位为磅(points)或象素,例如lty=“44”和lty=2效果相同。线条虚实样式:0 )不画线,1 )实线,2 )虚线,3 )点线,4 )点划线,5 )长划线,6 )点长划线;

3.3 调色板

  R中,图形绘制可以用数字代表颜色,用col=c(1,2)可以组合两种颜色。如下所示,1代表红色。

n <- 20
barplot(rep(1,times=n),col=rainbow(n),border=rainbow(n),axes=FALSE, main="Rainbow colors"); 
box()