在R语言中, 绘图边框一共有3个区域:

device region :

figure region :

plot region   :

在描述不同区域大小的时候,有对应的不同参数:

din : 返回device region 的宽度和高度, 单位为 inches

fin : 返回figure region 的宽度和高度,单位为 inches

pin : 返回plot region 的宽度和高度, 单位为inches

代码示例:

  1. > pdf("a.pdf", height = 10, width = 10)
  2. > par("din")
  3. [1] 10 10
  4. > par("fin")
  5. [1] 10 10
  6. > par("pin")
  7. [1] 8.76 8.16

首先创建一个绘图设置,这里我们创建一个宽度和高度都为10的pdf , 单位是inches

通过din 参数的返回值可以看到,pdf 对应的宽度和高度都是10 inches

通过 fin 参数的返回值可以看到,figure region 对应的宽度和高度都是10 inches

通过 pin 参数的返回值可以看到,plot region 对应的宽度和高度分别是8.76 和 8.16 inches

device region 的宽度和高度很好理解,是我们在绘图时设置的, 但是figure region 和 plot region 的宽度和高度是如何得到的呢?

在device region 和 figure  region 之间,存在 outer magin, 默认情况下,outer margin 4个方向的值都为0,所以 device region 和 figure region 的宽度和高度一致

我们通过设置 omi 参数的值再来看一下

  1. > pdf("a.pdf", height = 10, width = 10)
  2. > par(omi = c(1, 2, 1, 2))
  3. > par("din")
  4. [1] 10 10
  5. > par("fin")
  6. [1] 6 8

我们可以看到,device region的宽度和高度都是10, 而figure reigon的宽度和高度变成了6和8, 少的就是outer margin的部分

figure region width   = device region width - left outer margin - right outer margin

figure region height  = device region heigth - top outer margin - bottom outer margin

根据上面的公式, figure region 的宽度  10 - 2 - 2 = 6, figure region 的高度 = 10 - 1 - 1 = 8

同样的道理,在figure region 和 plot region 之间存在margin

plot region width   = figure region width - left outer margin - right outer margin

plot region height  = device region heigth - top outer margin - bottom outer margin

代码示例:

  1. > pdf("a.pdf", height = 10, width = 10)
  2. > par(mai = c(1, 2, 1, 2))
  3. > par("fin")
  4. [1] 10 10
  5. > par("pin")
  6. [1] 6 8

根据上面的公式, plot region 的宽度  10 - 2 - 2 = 6, plot region 的高度 = 10 - 1 - 1 = 8

通过上面几个参数的值,对于基本绘图系统中边框的理解就更加清楚了。

R语言绘图边框的更多相关文章

  1. R语言绘图边框的单位

    在R语言中指定画图边框时,通常使用两种单位, lines 和 inches 当然,这两个单位之间是可以相互转换的,那么 1 inch = ? line 答案是1 inches = 5 lines 下面 ...

  2. R语言绘图高质量输出

    R语言通过支持Cairo矢量图形处理的类库,可以创建高质量的矢量图形(PDF,PostScript,SVG) 和 位图(PNG,JPEG, TIFF),同时支持在后台程序中高质量渲染.在ggplot2 ...

  3. linux命令行下使用R语言绘图

    系统:centos 6.4 64bit 环境安装参考:http://hi.baidu.com/solohac/item/4a18e78f1bef9b5825ebd99c 在R语言中可以使用png()等 ...

  4. R语言绘图:时间序列分析 ggplot2绘制ACF PACF

    R语言真是博大精深 方法一 Acf(gold[,2], type = "correlation",lag.max = 100) Acf(gold[,2], type = " ...

  5. 从零开始学习R语言(八)——R语言绘图

    本文首发于知乎专栏:https://zhuanlan.zhihu.com/p/74051739 也同步更新于我的个人博客:https://www.cnblogs.com/nickwu/p/125683 ...

  6. R语言绘图布局

    在R语言中,par 函数可以设置图形边距,其中oma 参数设置outer margin, mar 参数设置margin, 这些边距有什么不同呢,通过box函数可以直观的看到 box 默认在当前图形绘制 ...

  7. R语言绘图002-页面布局

    par().layout().split.screen()函数 1. par()函数的参数详解 函数par()可以用来设置或者获取图形参数,par()本身(括号中不写任何参数)返回当前的图形参数设置( ...

  8. R语言——绘图函数深入学习

    利用R自带数据集 通过data()函数可以查看R自带数据集. > data() 返回以下结果,每一条记录都是一个数据,键入相应的数据名称可以查看具体信息. Data sets in packag ...

  9. R语言绘图时的边界碰撞问题

    当我们在绘图时,经常会遇到这样的问题,添加的文字标记超出了坐标系的问题,导致文字显示不全 比如下面这个例子: plot(c(1,5),c(1,5)) text(5,5.1,"ABCDEF&q ...

随机推荐

  1. linux下查看doc在线帮助文件

    常看到某个linux下的工具,有带有doc结尾的文件,但是新手不知道如何查看. 我一番查找,终于知道了... 比如:ipython这个软件,在ubuntu里面,有ipython-doc的一个包. 安装 ...

  2. SQL Server 创建约束图解 唯一 主键

    SQLServer中有五种约束,Primary Key约束.Foreign Key约束.Unique约束.Default约束和Check约束,今天使用SQL Server2008来演示下这几种约束的创 ...

  3. asp.net kindeditor 后台取不到数据

    今晚搞了3个小时,才搞定这个破问题. 页面上使用kindeditor,提交的时候使用了LinkButton,按钮后台事件私活娶不到kineditor里的数据. 最终一步一步测试,终于发现是LinkBu ...

  4. ubantu下安装软件

    Linux系统中,软件通常以源代码或者预编译包的形式提供.(1)软件源代码需要编译为二进制的机器代码才能够使用,安装比较耗时,不过您可以自行调节编译选项,决定需要的功能或组件,或者针对硬件平台作一些优 ...

  5. 如何保证RabbitMQ的消息不丢失及其背后的原理

    一.消息为什么丢失 RabbitMQ默认情况下的交换机和队列以及消息是非持久化的,也就是说在服务器重启或者宕机恢复后,之前创建的交换机和队列都将不复存在,之前未消费的消息也就消失不见了.原因在于每个队 ...

  6. 一个div层在页面上下左右居中以及数据的排序

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. python匹配两个字符串中间的字符串

    问题:使用python正则如何匹配两字符串中间的字符串解决:使用re模块的findall,注意,re.match是只能从开头匹配的方法: import re html_str = '</a> ...

  8. vim添加复制(crtl+c),粘贴(ctrl+v)ctrl+A 等快捷键

    1  在  /usr/share/vim/vimrc文件中添加   source $VIMRUNTIME/mswin.vim 2  mswin.vim位置在 /usr/share/vim/vim72/ ...

  9. Maven学习之(四)Maven插件创建web项目

    另一种maven web项目的创建. 创建出来的目录是这样的,此时试一下,不能加入到tomcat中去启动. 这里要将项目转化为web项目. 右键->项目 选中下面的动态web项目,然后OK 此时 ...

  10. redis 最优雅的错误提示

    Exception in thread "main" redis.clients.jedis.exceptions.JedisDataException: DENIED Redis ...