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()来实现

调用格式为

  1. par(optionname = value, optionname = value, ...)
  2. #或者多次调用
  3. par()
  4. par()

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

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

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

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

  1. #先储存初始的参数
  2. opar <- par(no.readonly = TRUE)
  3. par()
  4. #修改后在令其还原
  5. 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. 标题

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

2. 坐标轴

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

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

3. 参考线

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

4. 图例

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

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

title图例标题的字符串

5. 文本标注

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

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

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

  1. 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. TICK技术栈(二)Telegraf安装及使用

    1.什么是Telegraf? Telegraf是一个用Go语言开发的代理程序,可用于收集和报告指标.Telegraf插件直接从其运行的系统中获取各种指标,从第三方API中提取指标,甚至通过StatsD ...

  2. MYSQL-LINUX 安装步骤

    https://www.cnblogs.com/dengshihuang/p/8029092.html   5.7版本安装步骤 1.官网下载mysql二进制文件,匹配自己的linux版本: wget ...

  3. 运用wxs制作微信小程序左滑功能和跳转,性能更优越

    锲子 微信小程序自定义左滑功能加上跳转,换成以往,左滑功能的逻辑一般是在js中实现,但在拖动方面,性能并不是那么的流畅.如今,官方新扩展了一套脚本语言wxs,在IOS设备上运行,性能会比JS快2~20 ...

  4. [loj2546][JSOI2018]潜入行动(树形DP)

    题目描述 外星人又双叒叕要攻打地球了,外星母舰已经向地球航行!这一次,JYY 已经联系好了黄金舰队,打算联合所有 JSOIer 抵御外星人的进攻. 在黄金舰队就位之前,JYY 打算事先了解外星人的进攻 ...

  5. 学习笔记27_Action方法技巧

    *在Action方法中,会存在重载问题,名字冲突就会报错,使用 [HttpPost]//只接受Post请求,且级别较高 public ActionResult Edit(..){} *在Action方 ...

  6. [考试反思]1026csp-s模拟测试88:发展

    不用你们说,我自己来:我颓闪存我没脸. 昨天的想法, 今天的回答. 生存, 发展. 总分榜应该稍有回升,但是和上面的差距肯定还是很大. 继续. 为昨天的谬误,承担代价. T2和T3都值得张记性. T2 ...

  7. CSPS模拟 85

    WWB大佬的bitset映射真是太强了! %%% T1 观察样例,猜规律. T2 对题目的翻译工作用了很长时间 翻译错了好几次.. 观察到奇环没法染色,选的边必须把奇环弄断 如果在偶环上,偶环就变得没 ...

  8. NOIP模拟 15

    因为OJ停机,正好写(tui)个总结(boke) 题解不想写了. 前两题题意没看懂,其实比较简单. 最后一题神仙,想放弃. (迪神貌似又在疯狂骂自己) (我这么辣鸡我...) (下面开始跑题) 这两天 ...

  9. 常见Java数据结构&优缺点

      数组   优点:查询快,如果知道索引可以快速地存取   缺点:删除慢,大小固定     有序数组   优点:比无序数组查找快   缺点:删除和插入慢,大小固定   栈   优点:提供后进先出的存取 ...

  10. node.js评论列表和添加购物车数据库表创建

    2.1:评论列表--发表评论 用户点击新闻列表某一条新闻,看到新闻详细发表评论 -用户输入评论内容 -发表评论 [将用户评论内容保存数据库 xz_comment] 2.2:评论列表--发表评论-开发评 ...