1. R 中图形的概念

在 R 中图,就像 photoshop 中的图层一样,每一个元素都是层层向上延展构建的,最终形成了我们视觉上所形成的平面图形。这些元素包含了常见的图形的标题(title)、坐标轴(axis)、标签(label)、颜色(color)、线条(line)、符号(character)、文本标注(text)等等

2. 画图的基本流程

dev.new

pdf(mygraph.pdf)

attach(variable)

plot()...

detach(variable)

dev.off

3. 图形参数

参数又为parameter,这一选项可以自定义一副图形的多个特征。我们可以通过函数par()来实现

调用格式为

par(optionname = value, optionname = value, ...)
#或者多次调用
par()
par()

也可以在高级绘图函数中直接提供参数的键值对optionname = value

plot(dose, drugA, type = "b", lty = 2, pch = 17)

但并不是每个绘图函数都允许指定全部可能的图形参数

值得一提的是,par()函数是指定全局的参数设置,该参数除非被修改否则在会话结束之前一直有效,添加参数no.readonly = TRUE 可以生成一个可以修改的当前图形参数列表。

#先储存初始的参数
opar <- par(no.readonly = TRUE)
par()
#修改后在令其还原
par(opar)

指定符号和线条类型的参数

  1. pch —— point character 绘制点使用的符号
  2. cex —— 指定符号的大小,是一个数值,表示默认大小的缩放倍数
  3. lty —— linetype 指定线条的类型 线条样式 1 为实线,2 为虚线
  4. lwd —— linewide 指定线条的宽度

颜色

  1. col —— 默认的绘图颜色,可以接受一个含有颜色值的向量并自动循环使用,如col = c("red", "blue") 也为符号的颜色
  2. col.axis —— 坐标轴刻度文字的颜色
  3. col.lab —— 坐标轴标签(名称)的颜色
  4. col.main —— 标题颜色
  5. col.sub —— 副标题颜色
  6. fg —— 图形的前景色
  7. bg —— 图形的背景色,也为符号的填充色

文本属性

  1. cex 表示相对于默认大小缩放倍数的数值,特指符号的缩放大小
  2. cex.axis 坐标轴刻度的缩放倍数
  3. cex.lab
  4. cex.main
  5. cex.sub
  6. font 整数 用于指定绘图使用的字体样式,1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体
  7. font.axis
  8. font.lab
  9. font.main
  10. font.sub
  11. family 使用的字体族,先用names(pdfFonts())找到可用字体,然后在在pdf()中添加参数pdf("mypdf.pdf", family = "fontname")来生成图形

图形尺寸与边界尺寸

  1. pin以英寸表示的图形尺寸(宽和高)
  2. mai以数值向量表示的边界大小,顺序为“下,左,上,右”,也是英寸
  3. mar以数值向量表示的边界大小,顺序为“下,左,上,右”,单位为英分,默认值为 c(5,4,4,2)+0.1

添加文本、自定义坐标轴和图例

如上图,若想添加标题,需在plot()函数中加入参数 main;

若想添加副标题需加入参数sub();

若想添加坐标轴标签需加入参数xlab或者ylab;

指定坐标轴刻度的始末范围,可以添加参数xlim; ylim

1. 标题

title(main = "标题", col.main = "标题的颜色",
sub = "副标题", col.sub = "副标题的颜色",
xlab = "x 轴的标签", ylab = "y 轴的标签",
col.lab = "标签的颜色", cex.lab = "标签的尺寸")

2. 坐标轴

可以使用函数来自定义坐标轴,而不是默认的坐标轴, 在绘制自己创建的坐标轴之前,需要先使用plot()函数,并且在里面添加参数xaxt = n或者yaxt = n绘图时,纵轴不显示刻度线和刻度标签,但是保留了框线,而 ann = FALSE 表示暂时禁止坐标轴的生成,便于之后用 axis 自定义刻度线

axis(side,
at = "表示刻度线需要绘制的位置 , 就是相当于你在尺子的实际位置画一条线,如果 at=c(1:10), 即是在 1单位距离,2 单位距离等等画出刻度线"
labels = "刻度线旁边的文字标签, 而 label 相当于在 at 每个刻度对应的位置上打上标签,他们的数量应该是一致的"
pos = "与另一条坐标轴相交的位置",
lty = "线条类型" ,
col = "线条颜色",
las= "标签是否平行(=0)或垂直于(=2)坐标轴",
tck = "刻度线长度,以相对于绘图区域大小的分数表示,负值为外,正值为内,0 表示禁用,1 表示绘制网格线,默认为-0.01",
...)

3. 参考线

abline(h = "水平线的位置", v = "垂直线的位置")

4. 图例

legend(location, title, legend, ...)

location 可以直接由 locator(1)来确定图中 x,y 坐标,来确定图例放置的位置

title图例标题的字符串

5. 文本标注

向图形本身添加文本的方式:text()可向绘图区域内部添加文本,而mtext()向图形的四个边界之一添加文本

text(location, "输入的文本", pos,...)
mtext("输入的文本", side, line=n, ...)

如果想要把散点图某个点对应的值标注在其上方 可以如下

text(x, y, row.names(dataframe))

6. 数学标注

plotmath()

4. 图像的组合

使用函数par()或者layout()可以将多幅图形组合在一起成为一幅总括图形

par()中添加图形参数mfrow = c(nrows, ncols)来创建按行填充的、行数为 nrows、列数为 ncols 的图形矩阵。mfcol = c()可以按列填充矩阵。

或者是使用函数layout(matrix(c(1,1,2,3))),里面是一个矩阵,它指定了所要组合的多个图形的所在位置,创建了一个 2x2 的矩阵,其中第一幅图片放在 11,12 位置,而第二和第三幅图分别放在 21,22 位置

还有两个参数

widths = 各列宽度值组成的一个向量

heights = 各行高度值组成的一个向量

5. 图形布局的精细控制

使用图形参数fig = c()来完成

c(x1,x2,y1,y2) 表示所绘制图形的区域

而整个图形的区域面积是 1,左下角的坐标是(0,0),右上角的坐标是(1,1)

R 语言学习笔记(3)—— 基础绘图的更多相关文章

  1. R语言学习笔记:基础知识

    1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...

  2. R语言学习笔记(五)绘图(1)

      R是一个惊艳的图形构建平台,这也是R语言的强大之处.本文将分享R语言简单的绘图命令.   本文所使用的数据或者来自R语言自带的数据(mtcars)或者自行创建.   首先,让我们来看一个简单例子: ...

  3. R语言学习笔记2——绘图

    R语言提供了非常强大的图形绘制功能.下面来看一个例子: > dose <- c(20, 30, 40, 45, 60)> drugA <- c(16, 20, 27, 40, ...

  4. R语言学习笔记——C#中如何使用R语言setwd()函数

    在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//")> setwd("e:\桌面\")> s ...

  5. R语言学习笔记之: 论如何正确把EXCEL文件喂给R处理

    博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html ---- 前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. ...

  6. R语言学习笔记(二)

    今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") &g ...

  7. R语言学习笔记:字符串处理

    想在R语言中生成一个图形文件的文件名,前缀是fitbit,后面跟上月份,再加上".jpg",先不百度,试了试其它语言的类似语法,没一个可行的: C#中:"fitbit&q ...

  8. R语言学习笔记:日期处理

    1.取出当前日期 Sys.Date() [1] "2014-10-29" date()  #注意:这种方法返回的是字符串类型 [1] "Wed Oct 29 20:36: ...

  9. R语言学习笔记:小试R环境

    买了三本R语言的书,同时使用来学习R语言,粗略翻下来感觉第一本最好: <R语言编程艺术>The Art of R Programming <R语言初学者使用>A Beginne ...

  10. R语言学习笔记︱Echarts与R的可视化包——地区地图

    笔者寄语:感谢CDA DSC训练营周末上完课,常老师.曾柯老师加了小课,讲了echart与R结合的函数包recharts的一些基本用法.通过对比谢益辉老师GitHub的说明文档,曾柯老师极大地简化了一 ...

随机推荐

  1. Django学习day5——创建app

    app应用与project项目的区别 一个app实现某个功能,比如博客.公共档案数据库或者简单的投票系统 一个project是配置文件和多个app的集合,这些app组合成整个站点 一个project可 ...

  2. 介绍几个常用的makefile函数

    addprefix. $(addprefix <prefix>, <name1 name2 ...>) 功能:把<prefix>加到name序列中的每一个元素前面. ...

  3. python变量和运算

    本文收录在Python从入门到精通系列文章系列 1. 指令和程序 计算机的硬件系统通常由五大部件构成,包括:运算器.控制器.存储器.输入设备和输出设备. 其中,运算器和控制器放在一起就是我们通常所说的 ...

  4. [考试反思]0921csp-s模拟测试49:困顿

    太弱.还是太弱. 拉不开分差,离第一机房分数线估计还是300多分. 但是,还是要骂:XX出题人. 部分分非常少且没有意义,T1基本只有0/纯暴力20/100三个档, T2正解是n2但是n3一分不给,还 ...

  5. vim编辑器介绍

    所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...

  6. DAY 4 基础算法

    基础算法 本来今天是要讲枚举暴力还有什么的,没想到老师就说句那种题目就猪国杀,还说只是难打,不是难.... STL(一)set 感觉今天讲了好多,set,单调栈,单调队列,单调栈和单调队列保证了序列的 ...

  7. Linux命令实战(二)

    1.printf格式化输出(format and print data) 语法:printf(选项)(参数) 参数 输出格式:指定数据输出时的格式: 输出字符串:指定要输出的数据. 格式替代符 %c ...

  8. Python 基础 装饰器

    今天把学过的装饰器的知识进行回顾一下,说到装饰器,第一反应就是这个东西呢就是用来装逼的,为啥这样说呢,是应为没有这个东西照样可以干活,大部分工作都是可以做的,不管咋样还是把学过的装逼器梳理一下吧. 一 ...

  9. (十七)golang--闭包(简单明了)

    所谓闭包:就是一个函数和其相关的引用环境组合的一个整体: 首先,有如下一个小例子,最终的输出结果是什么呢?是输出11,12吗? 对上述代码说明:(1)addUpper是一个函数,返回的是func(in ...

  10. Cesium坐标系及坐标转换详解

    前言 Cesium项目中经常涉及到模型加载.浏览以及不同数据之间的坐标转换,弄明白Cesium中采用的坐标系以及各个坐标系之间的转换,是我们迈向三维GIS大门的前提,本文详细的介绍了Cesium中采用 ...