您好,欢迎来到宝玛科技网。
搜索
您的当前位置:首页R语言图形函数par 参数应用举例

R语言图形函数par 参数应用举例

来源:宝玛科技网
R语言图形函数par()参数应用举例

函数par()中的参数可以分为三大类:

(1)只可以查询而不可以修改的参数, 即 readonly 参数:\"cin\和 \"page\"。

(2)只能通过 par 函数进行设置的参数: \"ask\\"mfcol\\"mfrow\\"mfg\\"new\\"oma\\"omd\\"omi\\"pin\\"plt\\"ps\\"pty\\"usr\\"xlog\\"ylog\。

(3)剩下的是可以被高级绘图函数设置的参数, 这些高级绘图函数主要包括: abline, arrows, axis, box, contour, filled.contour, image, lines, mtext, plot.default, plot.window, points, polygon, rect , segments, symbols, text, title等,相应的参数如: lwd, lty, col, cex等。

第一部分:readonly 参数

cin: 这是一个只读参数,不能进行修改。以 inch(英寸)为单位的字符大小 (宽width, 高

height)。这和参数cra的作用一样,只是测量单位不同。

cra: 这是一个只读参数,不能进行修改。以 raster (栅格, pixel) 为单位的字符大小 (宽width,

高height)。 和 cin 的区别在于单位不同。

 

csi: 以 inch 为单位的字符高度, 同 cin 的第二个值。

cxy: 以用户坐标单位中默认字符大小 (宽,高), 是 par(\"cin\")/par(\"pin\"), 其实就是字符对于

特定坐标轴的相对大小。

 

din: 以 inch 为单位的设备维度 (宽, 高), 即图像输出设备能够输出的图像的大小。 page: 一个 bool 值, 如果接下来的图是要开启新的图页, 则其值为 TRUE; 如果接下来的

图是不开启新的图页, 则值为 FALSE. 设定 new 参数可以改变 page 的值, page 实际上是用来指示是否开启新图。

第二部分:par 设定参数

adj

该参数值用于设定在text、mtext、title中字符串的对齐方向。0表示左对齐,0.5(默认值)表示居中,而1表示右对齐(说明一下,区间[0,1]内的任何值都可以作为参数adj的有效值,并且在大部分的图形设备中,介于区间外的值也是有效的)。注意一下,函数text中的参数adj的值可以以类似于形式adj=c(x,y)调整方向。但是在text中该参数的值影响的是对点的标记,对函数mtext和title来说,参数adj的值影响的是整个图像或设备区域。

> par(mfrow=c(1,3))

> plot(1:20,adj=0, main=\"左对齐\") > plot(1:20,adj=0.5,main=\"居中对齐\") > plot(1:20,adj=1,main=\"右对齐\")

左对齐居中对齐00225511020:01115502:151015205101520IndexIndex

右对齐02:012510155101520Indexann

如果ann=FALSE,那么绘图函数会调用函数plot.default使对坐标轴名称、整体图像名称不做任何注解。默认值为TRUE。(注意,R中区分大小写,这里的FALSE和TRUE必须全部字母大写) > par(mfrow=c(1,3)) > plot(1:4,ann=FALSE,main='plot(1:4,ann=FALSE)') > plot(1:4,ann=TRUE,main='plot(1:4,ann=ann=TRUE)') > plot(1:4,main='plot(1:4,ann=default)') plot(1:4,ann=ann=TRUE)00..4455..3300..33545.:.21200..2255..1100..111.01.52.02.53.03.54.01.01.52.02.53.03.54.0Index

plot(1:4,ann=default)0.45.30.345:.120.25.10.11.01.52.02.53.03.54.0Index ask

逻辑值。若为TRUE(且当前的R会话是可交互状态),则在绘制新图像之前会要求用户输入确认信息。同样的,会对扩展包grid和lattice的输出有影响,甚至可能会应用到没有屏幕输出的设备上(但可能会没有效果)。

axes

用于设定是否显示边框。默认值为TRUE(带边框)。若为FALSE,则不显示边框。

> par(mfrow=c(2,2)) > x <- seq(1,3) > y <- x

> plot(x,y, main=\"默认(带边框)\

> plot(x,y, main=\"带边框ype=\"l\axes=TRUE) > plot(x,y, main=\"不带边框ype=\"l\axes=F)

> plot(x,y, main=\"不带任何注释ype=\"l\axes=False)

默认(带边框)3.03.0带边框2.01.01.01.52.0x2.53.01.01.02.0yy1.52.0x2.53.0不带边框yx

bg

用于设定绘图区域的背景颜色。当通过函数par()调用时,会同时设定参数new=FALSE。对很多设备来说,该参数的初始值就是该设备的背景颜色值,其他情况下一般为\"white\"。需要注意一点的是,一些图形函数例如plot.default和points等也有名为bg的参数,但是代表的含义是不同的。

> par(bg=\"orange\") > plot(1:100)

1:10000204060801002040Index6080100

bty

该参数值为字符串型,用于限定图形的边框类型。如果bty的值为\"o\"(默认值)、\"l\"、\"7\"、\"c\"、\"u\"或者\"]\"中的任意一个,对应的边框类型就和该字母的形状相似。如果bty的值为\"n\",表示无边框。

> par(mfrow=c(3,2)) > par(bty=\"l\")

> plot(1:10,main='bty=\"l\"') > par(bty=\"7\")

> plot(1:10,main='bty=\"7\"') > par(bty=\"c\")

> plot(1:10,main='bty=\"c\"') > par(bty=\"u\")

> plot(1:10,main='bty=\"u\"') > par(bty=\"O\")

> plot(1:10,main='bty=\"O\"')

bty=\"l\"01016:12246810Indexbty=\"c\"01016:12246810Indexbty=\"O\"01016:12246810Index

bty=\"7\"01016:12246810Indexbty=\"u\"01016:12246810Index cex

用于表示对默认的绘图文本和符号放大多少倍。需要注意一些绘图函数如plot.default等也有一个相同名字的参数,但是此时表示在函数par()的参数cex的基础上再放大多少倍,此外还有函数points等接受一个数值向量为参数。

cex.axis: 表示在当前的cex设定情况下,对坐标轴刻度值字体的放大倍数。 cex.lab: 表示在当前的cex设定情况下,对坐标轴名称字体的放大倍数。 cex.main: 表示在当前的cex设定情况下,对主标题字体的放大倍数。 cex.sub: 表示在当前的cex设定情况下,对子标题字体的放大倍数。 > par(mfrow=c(2,2)) > plot(1:5,cex.axis=1,cex.lab=1) > plot(1:5,cex.axis=1,cex.lab=1.7) > plot(1:5,cex.axis=1.7,cex.lab=1) > plot(1:5,cex.axis=1.7,cex.lab=1.7) 545:132112345Index55:13112345Index

5432112345Index53112345Index 1:51:5col

用于设定默认的绘图颜色。

col.axis: 坐标轴刻度值的颜色,默认为\"black\"。 col.lab: 坐标轴名称的颜色,默认为\"black\"。 col.main: 主标题的颜色,默认为\"black\"。 col.sub: 子标题的颜色,默认为\"black\"。

> par(mfrow=c(1,2))

> plot(1:20,main=\"color test\n=\"black\

> plot(1:20,main=\"color test\\"green\

color test2020color test151:20101:20510Indexwahaha1520551015510Indexwahaha1520

crt

该参数的值为一个表示度数的数值,用于表示单个字符的旋转度数,最好为90的倍数。和参数srt的不同之处在于后者是对整个字符串进行旋转。

family

图形中字符的字体类型。最大的长度为200 bytes。默认值为\"\",表示采用绘图设备的默认字体。

fg

图形中显著位置的颜色(如坐标轴、刻度线,边框等),一般默认为\"black\"。

> par(fg=\"green\") > plot(1:100) 1:10000204060801002040Index6080100 fig

一个数值向量,形式为c(x1, x2, y1, y2),用于设定当前图形在绘图设备中所占区域,注意需要满足x1> par(fig=c(0,0.5,0.1,0.9)) > plot(1:10)

> par(fig=c(0.5,1,0,1),new=TRUE, fg=\"green\") > plot(1:20)

018061:142246810Index

02510155101520Index1:20fin

当前绘图区域的尺寸规格,形式为(width,height),单位为英寸。如果修改了这个参数的值,默认为启动一个新的绘图设备。

> par(fin=c(3,4)) > plot(1:10) 1:10224681046Index810 > par(fin=c(5,5)) > plot(1:10) 1:10246810246Index810

font

用于设定采用哪种字型,为一个整数。1代表纯文本(默认值),2表示黑体,3表示斜体,4表示黑色斜体。在Adobe字符编码下,5也可以。 font.axi: 坐标轴刻度值的字型。 font.lab: 坐标轴名称的字型。 font.main: 主标题的字型。 font.sub: 子标题的字型。

> par(mfrow=c(1,1))

> plot(1:20,main=\"斜体\sub='黑色斜体', font.axis=1, font.lab=2, font.main=3, font.sub=4)

斜体201:2051015510Index1520黑色斜体

lab

以形式c(x,y,len)表示的数值型向量,用于对坐标轴的名称进行设定。值x和y用于设定x和y轴上的刻度线的个数,而len设定了刻度线的长度(目前R中这个值是没有效应的)。 > par(lab=c(3,3,5)) > plot(1:30,main=\"3个刻度线\") 3个刻度线301:3000102010Index2030 > par(lab=c(6,6,5)) > plot(1:30, main=\"6个刻度线\") 6个刻度线301:300051015202551015Index202530

las

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

> par(mfrow=c(2,2),fg=\"blue\")

> plot(1:10,las=0,main=\"刻度值平行于坐标轴\") > plot(1:10,las=1,main=\"刻度值总是水平方向\") > plot(1:10,las=2,main=\"刻度值垂直于坐标轴\") > plot(1:10,las=3,main=\"刻度值总是垂直方向\")

刻度值平行于坐标轴810108刻度值总是水平方向1:101:10246Index8102246Index810246刻度值垂直于坐标轴108刻度值总是垂直方向8101:101:1022468246246108IndexIndex

10lend

线段的端点样式,参数值可以为一个整数或者一个字符串。 参数值为0或者\"round\"时,表示端点样式为圆角(默认值);为1或者\"butt\"时,表示端点直接截断;为2或者\"square\"表示延伸末端。

plot(1:8,type=\"n\红-末端圆角;绿-末端平角;蓝-末端延伸\") x0<-c(1,2,3,5,6) y0<-rep(1,5) x1<-x0

y1<-rep(6,5)

segments(x0,y0,x1,y1) x0<-rep(0,4)

y0<-seq(1.3,4.3,1) x1<-c(1,6,3,1) y1<-y0 #默认情形

segments(x0,y0,x1,y0,lwd=10,col=\"red\") #修改参数lend=1 y0<-seq(1.6,4.6,1) y1<-y0

segments(x0,y0,x1,y0,lwd=10,col=\"green\#修改参数lend=2 y0<-seq(1.9,4.9,1) y1<-y0 x0<-x1

x1<-c(2,8,5,3)

segments(x0,y0,x1,y0,lwd=10,col=\"blue\

红-末端圆角;绿-末端平角;蓝-末端延伸61:8112345234Index5678 lty

直线类型。参数的值可以为整数(0为空,1为实线(默认值),2为虚线,3为点线,还可以为4、5、6等),也可以为字符串(和整数是一一对应的,如\"blank\"、\"solid\"、\"dashed\"、\"dotted\"、\"dotdash\"、\"longdash\"或者 \"twodash\")。

> x <- seq(-pi, pi, len = 65)

> plot(main=\"红-线型:实线;绿-线型:虚线;\x, sin(x), type = \"l\col = \"red\ lty = 1)

> points(x, cos(x),type = \"l\col = \"green\lty = 2)

红-线型:实线;绿-线型:虚线;1.0sin(x)-1.0-0.50.00.5-3-2-10x123

lwd

线条宽度。必须为一个整数,默认值为1。具体的实现根据设备而定,有一些绘图设备不支持线条宽度小于1。

> x <- seq(1,5) > y1 <- x > y2 <- x+1 > y3 <- x-1

> plot(main=\"红-线宽1;绿-线宽5;蓝-线宽10\x, y1, type = \"l\col = \"red\ lwd = 1)

> points(x, y2,type = \"l\col = \"green\lwd = 3) > points(x, y3,type = \"l\col = \"blue\lwd = 10)

红-线宽1;绿-线宽5;蓝-线宽105y11123423x45

mfcol,mrow

用于设定图像设备的布局(简单的说就是将当前的绘图设备分隔成了nr*nc个子设备),参数形式为c(nr, nc)。子图的绘图顺序是按列还是按行就分别根据是参数指定的是mfcol还是mfrow。想要实现相同的功能还可以利用函数layout或者split.screen。

mgp

设定标题、坐标轴名称、坐标轴距图形边框的距离。默认值为c(3,1,0),其中第一个值影响的是标题。

> x <- seq(1,3) > y <- x > par(mfrow=c(2,2)) > plot(main=\"默认值\x, y, type = \"l\mgp=c(3,1,0)) > plot(main=\"改变坐标轴标签距图形边框的距离\x, y, type = \"l\mgp=c(2,1,0)) > plot(main=\"改变坐标轴刻度值距图形边框的距离\x, y, type = \"l\mgp=c(3,2,0)) > plot(main=\"改变坐标轴距图形边框的距离\x, y, type = \"l\mgp=c(3,1,0.3))默认值3.03.01.01.52.0x2.53.0改变坐标轴标签距图形边框的距离2.01.01.01.0y2.0y1.52.0x2.53.0改变坐标轴刻度值距图形边框的距离3.03.0改变坐标轴距图形边框的距离y2.01.01.01.02.0y1.01.52.0x2.53.01.52.0x2.53.0 new

逻辑值,默认值为FALSE。如果设定为TRUE,那么下一个高级绘图命令并不会清空当前绘图设备。

oma, omi

用于设定外边界。这里的oma即是:out margin area,就是指外围边距,参数形式为c(bottom, left, top, right)。比如oma=c(4,3,2,1),就是指外围边距分别为下边距:4行,左边距3行,上边距2行,右边距1行,这里的行是指可以显示1行普通字体。注意,设置顺序是从x轴开始顺时针方向。

omi和参数oma的作用一样,只是参数的单位为英寸。 > par(oma=c(0,0,3,3)) > plot(1:30,col=\"blue\> legend('bottom', legend=\"下边距0\") > legend('left', legend=\"左边距0\") > legend('top', legend=\"上边距3\") > legend('right', legend=\"右边距3\") [备注:显示图形边框(绿色虚线)以便查看图形效果,边框在R输出图形中实际是没有的] 30上边距31:30202551015左边距0右边距3下边距00051015Index202530 pch

表示点的形状,它的值可以为数值型(介于0到25之间的数值),也可以为字符型(只能是单个字符)。1代表圆圈,2代表三角形,3代表“+”号。当pch的值为字符型时,那么点就通过该字符来表示。

pin, plt, pty

pin: 当前的维度,形式为c(width,height),单位为英寸。 plt: 形式为 c(x1, x2, y1, y2),设定当前的绘图区域。

pty: 一个字符型参数,表示当前绘图区域的形状,\"s\"表示生成一个正方形区域,而\"m\"表示生成最大的绘图区域。

srt

字符串旋转度数,只支持函数text。

tck, tcl

tck: 坐标轴刻度线长度,单位是绘图区域大小,值为占绘图区域的比例。tck小于0.5时x轴和y 轴的刻度线将统一到相同的长度。取1时即画格子线。取负值时刻度线画在绘图区域的外面。默认值为NA(相当于tcl=-0.5)。

tcl: 同样可用于设定刻度线的长度,但是和tck的单位不同。它的默认值为-0.5。

> par(mfrow=c(2,2))

> plot(1:10,main=\"tck = default\") > plot(1:10,main=\"tck = 1\> plot(1:10,main=\"tck = 0.5\> plot(1:10,main=\"tck = 0\

tck = default018016:142246810Indextck = 0.5018016:142246810Index

tck = 1018016:142246810Indextck = 0018016:142246810Index> par(mfrow=c(2,2)) > plot(1:10,main=\"tcl = default\") > plot(1:10,main=\"tcl = 1\> plot(1:10,main=\"tcl = 0\> plot(1:10,main=\"tcl = -0.5cl = default018016:142246810Indextcl = 0018016:142246810Index tcl = 1018016:142246810Indextcl = -0.5018016:142246810Indexusr

一个形式为c(x1, x2, y1, y2)的向量,表示当前绘图区域的坐标值范围:c(xleft, xright, ybottom, ytop)。如果采用的对数刻度(如par(\"xlog\")=TRUE),那么x坐标轴的表示范围为10^par(\"usr\")[1:2],同样也可以得到y坐标轴的表示范围。

xaxp, yaxp

xaxp: 一个形式为c(x1, x2, n)的向量,表示当par(\"xlog\")=false时,x坐标轴的刻度线的区间及区间中的刻度线个数。若par(\"xlog\")=TRUE,情形就稍微复杂了:若取值范围较小,那么n是一个负数,且刻度线的分布和正常情形(没有对数转换)下相似;若n取值为1、2、3中的一个,c(x1,x2)=10^par(\"usr\")[1:2](并且此时par(\"usr\")是指par(\"xlog\")=TRUE情况下返回的值)。具体解释如下:

n=1,在坐标值为10^j(j为整数)处绘制刻度线。

n=2,在坐标值为k*(10^j)处绘制刻度线,其中k为1或者5。 n=3,在坐标值为k*(10^j)处绘制刻度线,其中k为1、2或者5。

yaxp: 同xaxp类似,表示y坐标轴的刻度线的区间及区间中的刻度线个数。 > par(mfrow=c(2,2)) > plot(1:30,xaxp=c(0, 30, 3)) > plot(1:30,xaxp=c(0, 30, 5)) > plot(1:30,yaxp=c(0, 30, 3)) > plot(1:30,yaxp=c(0, 30, 5)) 30201:30101:30010Index203000010203061218Index243030201:30101:30051015Index2025300006183051015Index202530 xaxs, yaxs

xaxs: 坐标轴x的间隔设定方式。取值范围为:\"r\。一般来说,计算方式是由xlim的数值范围确定的(如果xlim指定了的话)。

\"r\"(regular)首先会对数值范围向两端各延伸4%,然后在延伸后的数值区间中设置坐标值;\"i\"(internal)直接在原始的数据范围中设置坐标值。

yaxs: 类似于xaxs,对坐标轴y的间隔设定方式。

> par(mfrow=c(1,2)) > x <- seq(0,3) > y <- x

> plot(x, y,type = \"l\yaxs='r'\> plot(x, y,type = \"l\yaxs='i'\

xaxs='r', yaxs='r'3.03.0xaxs='i', yaxs='i'2.51.52.01.00.50.00.00.51.01.52.02.53.0x0.00.00.51.01.5yy2.02.50.51.01.5x2.02.53.0

xaxt, yaxt

xaxt: 用于设定x坐标轴的刻度值类型,为一个字符。\"n\"表示不绘制刻度值及刻度线;\"s\"表示绘制,默认值。

yaxt: 用于设定y坐标轴的刻度值类型,为一个字符。\"n\"表示不绘制刻度值及刻度线;\"s\"表示绘制,默认值。

> par(mfrow=c(2,2)) > x <- seq(0,3) > y <- x

> plot(x, y,type = \"l\main=\"xaxt='n', yaxt='n'\xaxt='n',yaxt='n') > plot(x, y,type = \"l\main=\"xaxt='n', yaxt='s'\xaxt='n',yaxt='s') > plot(x, y,type = \"l\main=\"xaxt='s', yaxt='n'\xaxt='s',yaxt='n') > plot(x, y,type = \"l\main=\"xaxt='s', yaxt='s'\xaxt='s',yaxt='s')

xaxt='n', yaxt='n'3.0xaxt='n', yaxt='s'yyx0.01.02.0xxaxt='s', yaxt='n'3.0xaxt='s', yaxt='s'yy0.00.51.01.5x2.02.53.00.00.01.02.00.51.01.5x2.02.53.0

xlog, ylog

xlog:一个逻辑值。如果为TRUE,表示对x轴为对数坐标轴,默认值为FALSE。 ylog:一个逻辑值。如果为TRUE,表示对y轴为对数坐标轴,默认值为FALSE。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- baomayou.com 版权所有 赣ICP备2024042794号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务