R语言进阶之图形参数
1. 概述
R语言是即使一款功能强大的统计语言,也是一款内容丰富的绘图工具。从原则上讲,你可以用R语言绘制出你能想到的任何图形。
你可以使用par()函数来设置绘图的相关参数(字体、坐标轴、标题等),这种方式设置的绘图参数会对后续的绘图进程持续有效,除非你修改这些参数。
# 使用par()函数设置绘图参数
par() # 查看当前的绘图参数
opar <- par() # 复制当前的绘图参数
par(col.lab="red") # 设置x轴和y轴的标签颜色为红色
hist(mtcars$mpg) # 用新设置的绘图参数绘图(mtcars是R中的内置数据集)
par(opar) # 恢复最初的绘图参数
另一种指定绘图参数的方法就是直接在绘图函数中设置,比如直接在hist()函数里就可以指定标签的颜色:
# 直接在hist()函数里指定标签颜色为红色
hist(mtcars$mpg, col.lab="red")
关于如何在不同绘图函数中设置绘图参数,请参见。
接下来我将主要讲解一些重要的绘图参数,这对于后续内容的学习至关重要。
2. 文本和符号的大小
下面的表格列出一些常见控制文本和符号尺寸的选项:
选项 |
描述 |
cex |
用于指定文本和符号的大小,其值代表绘图符号相对于默认大小的缩放倍数,默认值为1,1.5表示放大为默认值的1.5倍,而0.5则表示缩小为默认值的0.5倍 |
cex.axis |
指定坐标轴刻度文字的缩放倍数 |
cex.lab |
指定坐标轴标签的缩放倍数 |
cex.main |
指定标题的缩放倍数 |
cex.sub |
指定副标题的缩放倍数 |
3. 绘图符号
我们可以使用pch=这个参数去指定图中点的形状,它的值是数字,不同数字代表不同的符号,对于21~25号,我们需要指定边框的颜色(col=)和填充色(bg=)。具体关系如下图所示:
4. 线条
关于线条的相关选项如下表:
选项 |
描述 |
lty |
指定线条的形状,如下图所示 |
lwd |
指定线条的宽度,2表示线宽是默认值的两倍 |
5. 颜色
下表列出与颜色相关的选项:
选项 |
描述 |
col |
默认的颜色参数 |
col.axis |
指定坐标轴刻度的颜色 |
col.lab |
指定坐标轴标签的颜色 |
col.main |
指定标题的颜色 |
col.sub |
指定副标题的颜色 |
fg |
指定前景色 |
bg |
指定背景色 |
在R语言中,你可以通过编号、名称、十六进制符或者RGB的方式来指定具体的颜色,比如col=1、col="white"和col="#FFFFFF" 都表示的是白色。
下图就是R语言中各个颜色的编号:
你也可以使用rainbow(n), heat.colors(n), terrain.colors(n),topo.colors(n), and cm.colors(n)这些函数来创建颜色,具体内容大家自行学习,这里就不赘述了。
你可以使用colors()函数来获取R中所有的颜色名称。
6. 字体
在R中,你可以非常方便地去设置字体的尺寸和样式:
选项 |
match描述 |
font |
指定使用的字体,1是普通字体, 2代表粗体, 3代表斜体。 |
font.axis |
指定坐标轴刻度的字体 |
font.lab |
指定坐标轴标签的字体 |
font.main |
指定标题的字体 |
font.sub |
指定副标题的字体 |
ps |
字体点的尺寸 (大约为1/72英尺),文本尺寸=ps*cex |
family |
指定文本的字体家族,标准值包括Standard values are "serif", "sans", "mono", "symbol"。 |
在实践中,我们通常会建立字体家族的映射,用简单的符号标记特定的字体家族,如下就是一个实例:
# 字体家族的映射关系
plot(1:10,1:10,type="n")
windowsFonts(
A=windowsFont("Arial Black"),
B=windowsFont("Bookman Old Style"),
C=windowsFont("Comic Sans MS"),
D=windowsFont("Symbol")
)
text(3,3,"Hello World Default")
text(4,4,family="A","Hello World from Arial Black")
text(5,5,family="B","Hello World from Bookman Old Style")
text(6,6,family="C","Hello World from Comic Sans MS")
text(7,7,family="D", "Hello World from Symbol")
关于绘图参数的讲解就先到这里,这部分的内容在后续的绘图中非常重要,希望大家熟练掌握!