R绘图边界如何控制

2020-08-04 23:03:57 浏览数 (2)

事实上,R绘图区域(如上图),主要分为两部分:

一是外围边距(out margin area);

二是绘图区域,绘图区域又细分为两个部分:绘图边距(margins)和主绘图(main plot area)。

外围边距可使用par()函数中的oma来进行设置。oma即out margin area,例如oma=c(5,4,3,2),这里指外围边距分别为下边距:5行,左边距4行,上边距3行,右边距2行,这里的行是指可以显示1行普通字体。注意,oma()设置顺序是从bottom开始,按照bottom,left,top,right方向设置,也就是从bottom开始按照顺时针方向设置。

绘图边距(margins)可以使用par()函数中mar来设置。比如mar=c(5,4,3,2),与外围边距的设置类似,是指绘图边距分别为下边距:5行,左边距4行,上边距3行,右边距2行。参数设置顺序与oma()顺序一直,也是从bottom开始顺时针方向设置。

R中边距大小一般有两个单位:“行”和“英寸”,上述两个参数的单位都是行边距,所以与之对应的就有英寸边距的参数。omi和oma,同样可以设置外边距,二者唯一的区别就是单位不同,omi单位是inch,而oma单位是行;同样,mai与mar均可以设置绘图边距,mai单位是inch,而mar单位是行。具体使用哪个参数,根据大家的习惯而来,像小编就习惯使用mar()和oma()。

说了这么多,可能各位小主还是雾里看花,下面咱们用数据测试一下,就一目了然。

代码语言:javascript复制
> attach(mtcars)#加载内置数据集
> plot(wt,mpg,main="test")#画散点图
> box(which = "plot", col = "red", lwd = 2)#绘制主绘图区域边框
> box(which = "figure", col = "blue", lwd = 5)#绘制 out margin area区域边框  

上图中,红色方框内的区域就是绘图区域,红色框和蓝色框之间的区域就是mar()设置的绘图边距区域。一般来说,绘图边距区域用来显示坐标轴、坐标轴标签及标题。所以在设置时,一般是下边距和左边距都会大一些。如果多个x轴或者y轴,我们也可以考虑将上边距或者右边距放大一些。

通常画图的时候,坐标轴显示不全,一般就是因为margins区域过小。下面我们缩小margins区域的面积,看看是否会和我们预料的一样。

代码语言:javascript复制
> par(oma=c(1,1,1,1), mar=c(2,2,2,2))
> plot(wt,mpg,main="test1")
> box(which = "figure", col = "blue", lwd = 5)
> box(which = "plot", col = "red", lwd = 2)  

我们可以看到margins区域缩小导致x和y轴的标签没有显示,和我们预料的一样,所以下次出现坐标轴标签显示不全的情况时,我们就可以通过调节mar()来解决啦。

至此,有的小主可能会问,那out margin area指的是嘛呀?各位小主别着急呀,且听我娓娓道来。所谓的out margin area指的就是外侧边框和图形设备之间的区域,上面的几张图片大家可能看的不是特别清晰,下面这张图片将将清晰的展示out margin area到底是什么。

代码语言:javascript复制
> par(oma=c(3,3,3,3), mar=c(5,5,5,5))
> plot(wt,mpg,main="test3")
> box(which = "plot", col = "red", lwd = 2)
> box(which = "figure", col = "blue", lwd = 5)  

上图中的虚线方框和蓝色方框之间的区域就是out margin area区域,由于小编是用Rstudio做的图,所以上图中的out margin area就是指与Rstudio图形界面的边距啦。

0 人点赞