有关绘图的全局参数多数都可以使用par()函数设置,该函数有丰富的在线参考信息,可通过?par获得。这只讲些常用参数的设置。
1 图形边距:mar/mai参数
R绘图参数中表示距离大小的一般都有“英寸”和“行”两种单位方式。图形边距设定参数可以用mai(英寸边距)和mar(行边距)。四个边距的顺序是下、左、上、右。
设置方法:
par(bg = "cyan") #把图形背景设为青色以便观察 par(mar = c(4, 4, 0.5, 0.5)) #设定下边距和左边距为4行,另外两边距为0.5行。 set.seed(1000) #设此参数是为了下面的rnorm()函数都能获得相同数据 plot(rnorm(10))
2 坐标轴(标题、刻度标签和刻度线)位置:mgp参数
mgp参数可设三个数值,依次为标题、刻度标签和刻度的位置。mar/mai设定参数后,图形区(用box函数绘制的边框)边缘位置即为0。所以,mgp=c(2, 0.5, 0)就表示标题在第二行,刻度标签在0.5行,刻度线在0行。
par(bg = "cyan") par(mar = c(4, 4, 0.5, 0.5)) set.seed(1000) par(mgp = c(2, 0.5, 0)) #坐标轴各项的位置设定 plot(rnorm(10))
3 获取位置坐标
如果要把图例、自定义文字等设置在图形区以外,par函数的usr参数非常有用,获取方法很简单:
usr <- par("usr") usr
## [1] 0.6400000 10.3600000 -1.4568325 0.8034654
返回值是一个向量:c(x1, x2, y1, y2)如果要通过鼠标点击获得图形上的某些点的坐标,可以用locator()函数:
xy <- locator(n = 1) #参数n表示要获得n个点的坐标,需要点击n次鼠标
4 在图形区外添加图例和文字
有了以上获取坐标信息的方法,我们可以把图例放在图形区外。先绘制柱形图:
par(mar = c(3, 3, 0.5, 4)) #注意给图例留出空间 par(mgp = c(2, 0.5, 0)) NF <- c(17.44, 2.56, 2.7, 18.71, 5.61, 32.98) CA <- c(11.48, 0.75, 1.16, 12.73