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. [Spark]Spark-streaming通过Receiver方式实时消费Kafka流程(Yarn-cluster)

    1.启动zookeeper 2.启动kafka服务(broker) [root@master kafka_2.11-0.10.2.1]# ./bin/kafka-server-start.sh con ...

  2. 简单Web UI 自动化测试框架 pyse

    WebUI automation testing framework based on Selenium and unittest. 基于 selenium 和 unittest 的 Web UI自动 ...

  3. UiPath之数据透视表

    今天给各位小伙伴们讲讲如何使用UiPath来创建数据透视表,相信大家在Execl中经常会使用. ---小U的QQ群(714733686):小U的订阅号[UiPath8888]--- 在UiPath里面 ...

  4. Linux基础指令--韩顺平老师课程笔记

    一.vi和vim编辑器 ①.三种模式 所有的 Linux 系统都会内建 vi 文本编辑器.vim 具有程序编辑的能力,可以看做是 vi 的增强版本,可以主动的以字体颜色辨别语法的正确性,方便程序设计. ...

  5. 树莓派debian配置lamp[解决Apache不显示php网页]

    Apache + MySql + Php. 1.安装Apache Apache可以用下面的命令来安装 sudo apt-get install apache2 Apache默认路径是/var/www/ ...

  6. C++中对C的扩展学习新增语法——内联函数以及函数参数

    内联函数以及函数参数 内联函数 使用 inline 关键字必须和函数体放在一起. 内联函数具有内部链接属性. 内联函数会被编译器在编译阶段替换到函数调用的地方. 可以把内联函数定义写到头文件中,多个c ...

  7. java property 配置文件管理工具框架,避免写入 property 乱序

    property property 是 java 实现的 property 框架. 特点 优雅地进行属性文件的读取和更新 写入属性文件后属性不乱序 灵活定义编码信息 使用 OO 的方式操作 prope ...

  8. hdu 1863 畅通工程 (并查集 、 kruskal)

    畅通工程Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  9. 【前端新手也能做大项目】:跟我一起,从零打造一个属于自己的在线Visio项目实战【ReactJS + UmiJS + DvaJS】(二)

    本系列教程是教大家如何根据开源js绘图库,打造一个属于自己的在线绘图软件.当然,也可以看着是这个绘图库的开发教程.如果你觉得好,欢迎点个赞,让我们更有动力去做好! 本系列教程重点介绍如何开发自己的绘图 ...

  10. PostgreSQL空间数据库创建备份恢复(PostGIS vs ArcGIS)

    梯子 PostGIS创建备份恢复ArcGIS创建备份恢复 PostGIS 创建 安装就不必介绍了,windows下使用安装工具Application Stack Builder,选择空间扩展PostG ...