vlambda博客
学习文章列表

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

用于指定文本和符号的大小,其值代表绘图符号相对于默认大小的缩放倍数,默认值为11.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表示线宽是默认值的两倍

R语言进阶之图形参数



5. 颜色


下表列出与颜色相关的选项:









选项

描述

col

默认的颜色参数

col.axis

指定坐标轴刻度的颜色

col.lab

指定坐标轴标签的颜色

col.main

指定标题的颜色

col.sub

指定副标题的颜色

fg

指定前景色

bg

指定背景色


R语言中,你可以通过编号、名称、十六进制符或者RGB的方式来指定具体的颜色,比如col=1col="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")



关于绘图参数的讲解就先到这里,这部分的内容在后续的绘图中非常重要,希望大家熟练掌握!