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. (二)golang--windows下vscode的安装以及go环境的配置

    在官网上下载vscode对应的安装包,进行安装: 安装的时候记得勾选加入到path路径: 下载go语言的SDK:https://studygolang.com/dl目前最新版本是1.13.4,我就下这 ...

  2. 学习笔记28_MVC异步请求

    *微软的MVC异步请求 使用一下方式,就能生成完整的<from>标签,以及对应的表单元素,提交时能达到异步提交的效果 <%using(Ajax.BeginForm( "Co ...

  3. PyQt图形化布局

    安装PyQt第三方库 pip install PyQt5 安装Qt Designer(Qt的布局工具) pip install PyQt5-tools PyChram设置Qt工具 配置Qt Desig ...

  4. My Eclipse 配置

    设置编码格式 点击Windows → preference → WorkSpace 设置编码格式 点击Windows → preference → General →Appearence → Colo ...

  5. NOIP模拟 5

    考试的时候相当浮躁,而且脑子并不工作 T1看了几眼,觉得没思路,先skip T2一打眼,满足条件的最大值,二分!(然后就死了,根本没想有没有单调性) T3找了半天规律,一开始自己手模的K3都过不了样例 ...

  6. Birt报表

    研究了两天终于发现开始学会了BIRT报表的开发流程. 第一步:到http://www.eclipse.org/downloads/下载  Eclipse IDE for Java and Report ...

  7. C#中的取整函数

    先放百度的 Math.Ceiling();向上取整 Math.Ceiling()向上取整: d = 4.56789 string res = Math.Ceiling(Convert.ToDecima ...

  8. 从 DevOps 到 Serverless:通过“不用做”的方式解决“如何更高效做”的问题

    作者 | 徐进茂(罗离) JAVA 开发工程师  导读:近年来,Serverless 一词越来越热,它已经逐渐成为了一种新型的软件设计架构.和 DevOps 概念提倡的是通过一系列工具和自动化的技术来 ...

  9. Python基础之JSON

    作用 对Python对象进行序列化,便于存储和传输 Python对象与JSON字符串相互转换 Python对象转JSON字符串 import json data = [ { 'a' : 1, 'b' ...

  10. 服务器上传文件到oss,以及备份

    公司的前端js,css是发布到oss的,所以要求后台在发布的同时先把即将要覆盖的文件备份到服务器上 步骤是先上传文件到服务器,服务器上传到oss服务器之前先备份相同文件名的文件 public clas ...