R 语言学习笔记(3)—— 基础绘图
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)
指定符号和线条类型的参数
pch
—— point character 绘制点使用的符号cex
—— 指定符号的大小,是一个数值,表示默认大小的缩放倍数lty
—— linetype 指定线条的类型 线条样式 1 为实线,2 为虚线lwd
—— linewide 指定线条的宽度
颜色
col
—— 默认的绘图颜色,可以接受一个含有颜色值的向量并自动循环使用,如col = c("red", "blue")
也为符号的颜色col.axis
—— 坐标轴刻度文字的颜色col.lab
—— 坐标轴标签(名称)的颜色col.main
—— 标题颜色col.sub
—— 副标题颜色fg
—— 图形的前景色bg
—— 图形的背景色,也为符号的填充色
文本属性
cex
表示相对于默认大小缩放倍数的数值,特指符号的缩放大小cex.axis
坐标轴刻度的缩放倍数cex.lab
cex.main
cex.sub
font
整数 用于指定绘图使用的字体样式,1=常规,2=粗体,3=斜体,4=粗斜体,5=符号字体font.axis
font.lab
font.main
font.sub
family
使用的字体族,先用names(pdfFonts())
找到可用字体,然后在在pdf()
中添加参数pdf("mypdf.pdf", family = "fontname")
来生成图形
图形尺寸与边界尺寸
pin
以英寸表示的图形尺寸(宽和高)mai
以数值向量表示的边界大小,顺序为“下,左,上,右”,也是英寸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)—— 基础绘图的更多相关文章
- R语言学习笔记:基础知识
1.数据分析金字塔 2.[文件]-[改变工作目录] 3.[程序包]-[设定CRAN镜像] [程序包]-[安装程序包] 4.向量 c() 例:x=c(2,5,8,3,5,9) 例:x=c(1:100) ...
- R语言学习笔记(五)绘图(1)
R是一个惊艳的图形构建平台,这也是R语言的强大之处.本文将分享R语言简单的绘图命令. 本文所使用的数据或者来自R语言自带的数据(mtcars)或者自行创建. 首先,让我们来看一个简单例子: ...
- R语言学习笔记2——绘图
R语言提供了非常强大的图形绘制功能.下面来看一个例子: > dose <- c(20, 30, 40, 45, 60)> drugA <- c(16, 20, 27, 40, ...
- R语言学习笔记——C#中如何使用R语言setwd()函数
在R语言编译器中,设置当前工作文件夹可以用setwd()函数. > setwd("e://桌面//")> setwd("e:\桌面\")> s ...
- R语言学习笔记之: 论如何正确把EXCEL文件喂给R处理
博客总目录:http://www.cnblogs.com/weibaar/p/4507801.html ---- 前言: 应用背景兼吐槽 继续延续之前每个月至少一次更新博客,归纳总结学习心得好习惯. ...
- R语言学习笔记(二)
今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述. > vars<-c("mpg","hp","wt") &g ...
- R语言学习笔记:字符串处理
想在R语言中生成一个图形文件的文件名,前缀是fitbit,后面跟上月份,再加上".jpg",先不百度,试了试其它语言的类似语法,没一个可行的: C#中:"fitbit&q ...
- R语言学习笔记:日期处理
1.取出当前日期 Sys.Date() [1] "2014-10-29" date() #注意:这种方法返回的是字符串类型 [1] "Wed Oct 29 20:36: ...
- R语言学习笔记:小试R环境
买了三本R语言的书,同时使用来学习R语言,粗略翻下来感觉第一本最好: <R语言编程艺术>The Art of R Programming <R语言初学者使用>A Beginne ...
- R语言学习笔记︱Echarts与R的可视化包——地区地图
笔者寄语:感谢CDA DSC训练营周末上完课,常老师.曾柯老师加了小课,讲了echart与R结合的函数包recharts的一些基本用法.通过对比谢益辉老师GitHub的说明文档,曾柯老师极大地简化了一 ...
随机推荐
- Django学习day5——创建app
app应用与project项目的区别 一个app实现某个功能,比如博客.公共档案数据库或者简单的投票系统 一个project是配置文件和多个app的集合,这些app组合成整个站点 一个project可 ...
- 介绍几个常用的makefile函数
addprefix. $(addprefix <prefix>, <name1 name2 ...>) 功能:把<prefix>加到name序列中的每一个元素前面. ...
- python变量和运算
本文收录在Python从入门到精通系列文章系列 1. 指令和程序 计算机的硬件系统通常由五大部件构成,包括:运算器.控制器.存储器.输入设备和输出设备. 其中,运算器和控制器放在一起就是我们通常所说的 ...
- [考试反思]0921csp-s模拟测试49:困顿
太弱.还是太弱. 拉不开分差,离第一机房分数线估计还是300多分. 但是,还是要骂:XX出题人. 部分分非常少且没有意义,T1基本只有0/纯暴力20/100三个档, T2正解是n2但是n3一分不给,还 ...
- vim编辑器介绍
所有的 Unix Like 系统都会内建 vi 文书编辑器,其他的文书编辑器则不一定会存在. 但是目前我们使用比较多的是 vim 编辑器. vim 具有程序编辑的能力,可以主动的以字体颜色辨别语法的正 ...
- DAY 4 基础算法
基础算法 本来今天是要讲枚举暴力还有什么的,没想到老师就说句那种题目就猪国杀,还说只是难打,不是难.... STL(一)set 感觉今天讲了好多,set,单调栈,单调队列,单调栈和单调队列保证了序列的 ...
- Linux命令实战(二)
1.printf格式化输出(format and print data) 语法:printf(选项)(参数) 参数 输出格式:指定数据输出时的格式: 输出字符串:指定要输出的数据. 格式替代符 %c ...
- Python 基础 装饰器
今天把学过的装饰器的知识进行回顾一下,说到装饰器,第一反应就是这个东西呢就是用来装逼的,为啥这样说呢,是应为没有这个东西照样可以干活,大部分工作都是可以做的,不管咋样还是把学过的装逼器梳理一下吧. 一 ...
- (十七)golang--闭包(简单明了)
所谓闭包:就是一个函数和其相关的引用环境组合的一个整体: 首先,有如下一个小例子,最终的输出结果是什么呢?是输出11,12吗? 对上述代码说明:(1)addUpper是一个函数,返回的是func(in ...
- Cesium坐标系及坐标转换详解
前言 Cesium项目中经常涉及到模型加载.浏览以及不同数据之间的坐标转换,弄明白Cesium中采用的坐标系以及各个坐标系之间的转换,是我们迈向三维GIS大门的前提,本文详细的介绍了Cesium中采用 ...