R 画图基本参数

简单概括一下,查找参数就方便多了

  • 符号和线条
  • 颜色
  • 文本属性
  • 图形尺寸与边界尺寸
  • 添加文本、自定义坐标轴和图例

函数par()可以自定义图形的字体、颜色、坐标轴、标签等。
par()设定的参数有点像全局变量,如果后面没有被修改,将会在整个绘图过程中产生作用。绘图完成之后,par(opar)可以恢复原来设置。

使用命令:
par(optionname=value,optionname=name,...)
par() #生成一个含有当前图形参数设置的列表
par(no.readonly=TRUE) #no.readonly=TRUE可以生成一个可以修改的当前图形参数列表。

opar <- par(no.readonly=TRUE)
par(lty-, pch, ...) #修改参数
plot(x,y)
par(opar) #恢复原来设置</pre>

符号和线条

用于指定符号和线条类型的参数

参 数 描 述
pch 指定绘制点时使用的符号
cex 指定符号的大小。cex 是一个数值,表示绘图符号相对于默认大小的缩放倍数。默认大小为1,1.5 表示放大为默认值的1.5 倍,0.5 表示缩小为默认值的50%,等等
lty 指定线条类型
lwd 指定线条宽度。lwd 是以默认值的相对大小来表示的(默认值为1)。例如,lwd=2 将生成一条两倍于默认宽度的线条

参数pch可指定的绘图符号


对于符号21~25,你还可以指定边界颜色(col=)和填充色(bg=)。
参数lty可指定的线条类型

颜色

用于指定颜色的参数

参 数 描 述
col 默认的绘图颜色。某些函数(如lines 和pie)可以接受一个含有颜色值的向量并自动循环使用。例如,如果设定col=c("red", "blue")并需要绘制三条线,则第一条线将为红色,第二条线为蓝色,第三条线又将为红色
col.axis 坐标轴刻度文字的颜色
col.lab 坐标轴标签(名称)的颜色
col.main 标题颜色
col.sub 副标题颜色
fg 图形的前景色
bg 图形的背景色

文本属性

文本属性:字号、字体和字样
用于指定文本大小的参数

参 数 描 述
cex 表示相对于默认大小缩放倍数的数值。默认大小为1,1.5 表示放大为默认值的1.5 倍,0.5 表示缩小为默认值的50%,等等
cex.axis 坐标轴刻度文字的缩放倍数。类似于cex
cex.lab 坐标轴标签(名称)的缩放倍数。类似于cex
cex.main 标题的缩放倍数。类似于cex
cex.sub 副标题的缩放倍数。类似于cex
font 整数。用于指定绘图使用的字体样式。1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体(以Adobe符号编码表示)
font.axis 坐标轴刻度文字的字体样式
font.lab 坐标轴标签(名称)的字体样式
font.main 标题的字体样式
font.sub 副标题的字体样式
ps 字体磅值(1 磅约为1/72 英寸)。文本的最终大小为ps*cex
family 绘制文本时使用的字体族。标准的取值为serif(衬线)、sans(无衬线)和mono(等宽)

图形尺寸与边界尺寸

用于控制图形尺寸和边界大小的参数

参 数 描 述
pin 以英寸表示的图形尺寸(宽和高)
mai 以数值向量表示的边界大小,顺序为“下、左、上、右”,单位为英寸
mar 以数值向量表示的边界大小,顺序为“下、左、上、右”,单位为英分①。默认值为c(5, 4, 4, 2) + 0.1

添加文本、自定义坐标轴和图例

在plot()语句或par()语句中添加参数ann=FALSE来移除默认的标题和标签。

标题

title()函数可以为图形添加标题和坐标轴标签
title(main="main title", sub="subtitle",xlab="x-axis label", ylab="y-axis label")

坐标轴

函数axis()来创建自定义的坐标轴
axis(side, at=, labels=, pos=, lty=, col=, las=, tck=, ...)
坐标轴参数选项

参 数 描 述
side 一个整数,表示在图形的哪边绘制坐标轴(1=下,2=左,3=上,4=右)
at 一个数值型向量,表示需要绘制刻度线的位置
labels 一个字符型向量,表示置于刻度线旁边的文字标签(如果为NULL,则将直接使用at 中的值)
pos 坐标轴线绘制位置的坐标(即与另一条坐标轴相交位置的值)
lty 线条类型
col 线条和刻度线颜色
las 标签是否平行于(=0)或垂直于(=2)坐标轴
tck 刻度线的长度,以相对于绘图区域大小的分数表示(负值表示在图形外侧,正值表示在图形内侧,0表示禁用刻度,1 表示绘制网格线);默认值为–0.01
(…) 其他图形参数

axes=FALSE #禁用全部坐标轴(包括坐标轴框架线,除非你添加了参数frame.plot=TRUE)。

xaxt="n" #禁用X轴(会留下框架线,只是去除了刻度)。
yaxt="n" #禁用Y轴(会留下框架线,只是去除了刻度)。

自定义坐标轴的示例:

次要刻度线

用Hmisc包中的minor.tick()函数创建次要刻度线;

library(Hmisc)
minor.tick(nx=n, #X轴主刻度线之间通过次要刻度线划分得到的区间个数
 ny=n, #y轴主刻度线之间通过次要刻度线划分得到的区间个数
 tick.ratio=n #次要刻度线相对于主刻度线的大小比例
)

参考线:

函数abline()可以用来为图形添加参考线。
abline(h=yvalues, v=xvalues) #参数h添加水平线,参数v添加垂直线

图例

函数legend()来添加图例。
legend(location, title, legend, ...)
图例选项

参 数 描 述
location 有许多方式可以指定图例的位置。你可以直接给定图例左上角的x、y 坐标,也可以执行locator(1),然后通过鼠标单击给出图例的位置,还可以使用关键字bottom、bottomleft、left、topleft、top、topright、right、bottomright 或center 放置图例。如果你使用了以上某个关键字,那么可以同时使用参数inset=指定图例向图形内侧移动的大小(以绘图区域大小的分数表示)
title 图例标题的字符串(可选)
legend 图例标签组成的字符型向量
其他选项。如果图例标示的是颜色不同的线条,需要指定col=加上颜色值组成的向量。如果图例标示的是符号不同的点,则需指定pch=加上符号的代码组成的向量。如果图例标示的是不同的线条宽度或线条类型,请使用lwd=或lty=加上宽度值或类型值组成的向量。要为图例创建颜色填充的盒形(常见于条形图、箱线图或饼图),需要使用参数fill=加上颜色值组成的向量

文本标注

text()向绘图区域内部添加文本;
text(location, "text to place", pos, ...)
mtext()则向图形的四个边界之一添加文本。
mtext("text to place", side, line=n, ...)
函数text()和mtext()的选项:

参 数 描 述
location 文本的位置参数。可为一对x、y 坐标,也可通过指定location 为locator(1)使用鼠标交互式地确定摆放位置
pos 文本相对于位置参数的方位。1=下,2=左,3=上,4=右。如果指定了pos,就可以同时指定参数offset=作为偏移量,以相对于单个字符宽度的比例表示
side 指定用来放置文本的边。1=下,2=左,3=上,4=右。你可以指定参数line=来内移或外移文本,随着值的增加,文本将外移。也可使用adj=0 将文本向左下对齐,或使用adj=1 右上对齐

数学标注

函数plotmath()可以为图形主体或边界上的标题、坐标轴名称或文本标注添加数学符号。


图形的组合

函数par()或layout()可以实现图形的组合
par()中加入参数mfrow=c(nrows, ncols)会创建按行填充的、行数为nrows、列数为ncols的图形矩阵。
例子:

attach(mtcars)
layout(matrix(c(1,1,2,3), 2, 2, byrow = TRUE))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)</pre>

一幅图被置于第1行,另两幅图则被置于第2行


layout(mat, widths = rep.int(1, ncol(mat)), heights = rep.int(1, nrow(mat)), respect = FALSE)

mat是一个矩阵,它指定了所要组合的多个图形的所在位置
widths = 各列宽度值组成的一个向量heights = 各行高度值组成的一个向量
例子:

attach(mtcars)
layout(matrix(c(1, 1, 2, 3), 2, 2, byrow = TRUE),
widths=c(3, 1), heights=c(1, 2))
hist(wt)
hist(mpg)
hist(disp)
detach(mtcars)</pre>

将一幅图形置于第1行,两幅图形置于第2行。但第1行中图形的高度是第2行中图形高度的二分之一。除此之外,右下角图形的宽度是左下角图形宽度的三分之一


参考资料:R语言实战(第二版)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容