R语言基本画图函数与多图多线

常用统计作图函数汇总

  • plot()
  • hist() 直方图
  • stem() 茎叶图
  • boxplot() 箱线图(盒形图)
  • coplot() 协同图
  • qqnorm() 正态qq图
  • qqplot() 两总体qq图

1. 高级低级图形函数的常用选项

高、低级图形函数概述

  • 高级图形函数可以迅速简便地绘制常见类型的图形,但是,某些情况下你可能希望绘制一些有特殊要求的图形。比如,你希望坐标轴按照自己的设计绘制,在已有的图上增加另一组数据,在图中加入一行文本注释,绘出多个曲线代表的数据的标签,等等。
  • 低级图形函数让你在已有的图的基础上进行添加。
    低级图形函数一般需要指定位置信息,其中的坐标指的是所谓用户坐标,即前面的高级图形函数所建立的坐标系中的坐标。坐标可以用两个向量x和y给出,也可以由一个两列的矩阵给出。如果交互作图可以用下面介绍的locator()函数来交互地从图形中直接输入坐标位置。

最常用高级函数的是plot()函数。比如,
- plot(x,y)(其中x,y是向量)对两个变量画散点图。
- 用plot(z) (其中z是一个定义了x变量和y变量的列表,或者一个两列的矩阵)也可以达到同样目的。
如果x是一个时间序列对象(时间序列对象用ts()函数生成),plot(x)绘制时间序列曲线图。
- 如果x是一个普通向量,则绘制x的值对其下标的散点图。
- 如果x是复数向量则绘制虚部对实部的散点图。
- 如果f是一个因子,则plot(f)绘制f的条形图(每个因子水平的个数)。
- 如果f是因子,y是同长度的数值向量,则plot(f,y)对f的每一因子水平绘制y中相应数值的盒形图。
- 如果d是一个数值型数据框,则plot(d)对d的每两个变量之间作图(散点图等)

load("F:/R/cl.RData")
plot(cl$Sex)

这里写图片描述

高级绘图函数常用选项

这里写图片描述

低级绘图函数常用选项

低级图形函数一般需要指定位置信息,其中的坐标指的是所谓用户坐标,即前面的高级图形函数所建立的坐标系中的坐标。坐标可以用两个向量x和y给出,也可以由一个两列的矩阵给出。如果交互作图可以用下面介绍的locator()函数来交互地从图形中直接输入坐标位置。

这里写图片描述

这里写图片描述

图形参数详解

图形元素

类型 解释
pch 指定用于绘制散点的符号。绘制的点往往略高于或低于指定的坐标位置,仅pch=“.”无这个问题。这里写图片描述
lty=2 指定画线用的线型。缺省值lty=1是实线。从2开始是各种虚线。
lwd=2 指定线粗细,以标准线粗细为单位。这个参数影响数据曲线的线宽以及坐标轴的线宽。
col=2 指定颜色,可应用于绘点、线、文本、填充区域、图象。颜色值也可以用象”red”,”blue” 这样的颜色名指定。
font=2 用来指定字体的整数。一般font=1是正体,2是 黑体,3是 斜体,4是 黑斜体。
font.axisfont.labfont.mainfont.sub 分别用来指定坐标刻度、坐标轴标签、标题、小标题所用的字体。
adj=-0.1 指定文本相对于给定坐标的对齐方式。取0表示左对齐,取1表示右对齐,取0.5表示居中。此参数的值实际代表的是出现在给定坐标左边的文本的比例,所以adj=-0.1的效果是文本出现在给定坐标位置的右边并空出相当于文本10%长度的距离。
cex=1.5 指定字符放大倍数。

坐标轴与坐标刻度

  • 许多高级图形带有坐标轴,还可以先不画坐标轴然后用axis()单独加。
  • 函数box() 用来画坐标区域四周的框线。
  • 坐标轴包括三个部件:轴线(用lty可以控制线型),刻度线,刻度标签。它们可以用如下的图形参数来控制:
参数 解释
lab=c(5, 7, 12)
第一个数为x轴希望画几个刻度线,第二个数为y轴希望画几个刻度线,这两个数是建议性的;第三个数是坐标刻度标签的宽度为多少个字符,包括小数点,这个数太小会使刻度标签四舍五入成一样的值。
las=1 坐标刻度标签的方向。0表示总是平行于坐标轴,1表示总是水平,2表示总是垂直于坐标轴。
mgp=c(3,1,0) 坐标轴各部件的位置。第一个元素为坐标轴位置到坐标轴标签的距离,以文本行高为单位。第二个元素为坐标轴位置到坐标刻度标签的距离。第三个元素为坐标轴位置到实际画的坐标轴的距离,通常是0。
tck=0.01 坐标轴刻度线长度,单位是绘图区域大小,值为占绘图区域的比例。tck小于0.5时x轴和y 轴的刻度线将统一到相同的长度。取1时即画格子线。取负值时刻度线画在绘图区域的外面。
xaxs=”s”yaxs=”d” 控制x轴和y轴的画轴方法。取值为”s”(即standard)或”e”(即extended)的时候数据范围控制在最小刻度和最大刻度之间。取”e”时如果有数据点十分靠近边缘轴的范围会略微扩大。这种画轴方式有时会在轴的一边留下太大的空白。取值为“i”(即internal)或“r”(此为缺省)使得刻度线都落在数据范围内部,而“r”方式所留的边空较小。取值设为”d”时会锁定此坐标轴,后续的图形都使用与它完全相同的坐标轴,这在要生成一系列可比较的图形的时候是有用的。要解除锁定需要把这个图形参数设为其它值。

一页多图

一页多图用mfrow参数或mfcol参数规定,如:

par(mfrow=c(3,2))
表示同一页有三行两列共六个图,而且次序为按行填放。类似地,

par(mfcol=c(3,2))
规定相同的窗格结构,但是次序为按列填放,即先填满第一列的三个再填第二列。

par(mfrow=c(1,1))即可。
缺省时无外边空。为了规定外边空大小,可以用omi参数或oma参数。omi参数使用英寸为单位,oma参数以文本行高为单位,两个参数均为四个元素的向量,分别给出下、左、上、右方的边空大小。如:
par(oma=c(2,0,3,0))

函数mtext用来在外边空加文字标注。其用法为
mtext(text, side = 3, line = 0, outer = FALSE)

在多图环境中还可以用mfg参数来直接跳到某一个窗格,比如
par(mfg=c(2,2,3,2))
表示在三行两列的多图环境中直接跳到第二行第二列位置。mfg参数的后两个表示多图环境的行、列数,前两个表示要跳到的位置。

可以不使用多图环境而直接在页面中的任意位置产生一个窗格来绘图,参数为fig,如:
par(fig=c(4,9,1,4)/10)
此参数为一个向量,分别给出窗格的左、右、下、上边缘的位置,取值为占全页面的比例,比如上面的例子在页面的右下方开一个窗格作图。

图形边空

这里写图片描述

S中一个单独的图由绘图区域(绘图的点、线等画在这个区域中)和包围绘图区域的边空组成,边空中可以包含坐标轴标签、坐标轴刻度标签、标题、小标题等,绘图区域一般被坐标轴包围。
边空的大小由mai参数或mar参数控制,它们都是四个元素的向量,分别规定下方、左方、上方、右方的边空大小,其中mai取值的单位是英寸,而mar的取值单位是文本行高度。例如:

par(mai=c(1, 0.5, 0.5, 0))
par(mar=c(4, 2, 2, 1))

这两个图形参数不是独立的,设定一个会影响另一个。S缺省的图形边空常常太大,以至于有时图形窗口较小时边空占了整个图形的很大一部分。
通常我们可以取消右边空,并且在不用标题时可以大大缩小上边空。例如下例可以生成十分紧凑的图形:
oldpar <- par(mar=c(2,2,1,0.2))
plot(x,y)
在一个页面上画多个图时边空自动减半,但我们往往还需要进

  • 34
    点赞
  • 256
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值