最近沉迷学习R语言,不得不说《R语言实战》真的太详细了,详细的阅读完这本书后,我的收获不小。为了方便自己复习,将这本书的内容整理归纳为两个部分:统计篇(数据分析)和图形篇(数据可视化)。

图形篇将会分为四个部分:图形初阶、基础图形、中级绘图和高级图形进阶(内容与原书对应)

图形初阶主要是一些图形的基本,内容如下。绘制一张规范美观的论文图表,最重要的是就是通过微调达到要求(不管是编辑还是导师的要求)。这里插一句,以前习惯于通过Origin的调整方式(双击操作)。到了用R语言的时候,怎么去调整图形参数就成了问题。

图形初阶就是调整图形,让图形达到自己要求的最好方法

1.1 符号与线条

表1 用于指定符号和线条类型的参数参数描述

pch指定绘制点时使用的符号

cex指定符号的大小

lty指定线条类型

lwd指定线条宽度

图1参数pch可指定的绘图符号

图2参数lty可指定的线条类型

1.2 颜色

表2 用于指定颜色的参数参数描述

col默认的绘图颜色

col.axis坐标轴刻度文字的颜色

col.lab坐标轴标签(名称)的颜色

col.main标题颜色

col.sub副标题颜色

fg图形的前景色

bg图形的背景色

在R中,生成颜色的方式有以下5种颜色下标(col=1)

颜色名称(col="white")

十六进制的颜色值(col="#FFFFFF")

RGB值,函数rgb()可基于红—绿—蓝三色值生成颜色

HSV值来指定颜色,hsv()则基于色相—饱和度—亮度值

函数colors()可以返回所有可用颜色的名称。

Earl F. Glynn为R中的色彩创建了一个优秀的在线图表,参见http://research.stowers-institute.org/efg/R/Color/Chart。

R中也有多种用于创建连续型颜色向量的函数,包括rainbow()、heat.colors()、terrain.colors()、topo.colors()以及cm.colors()。

1.3 文本属性

表3 用于指定文本大小的参数参数描述

cex表示相对于默认大小缩放倍数的数值

cex.axis坐标轴文字的缩放倍数

cex.lab坐标轴标签(名称)的缩放倍数

cex.main标题的缩放倍数

cex.sub副标题的缩放倍数

表4 用于指定字体族、字号和字样的参数参数描述

font整数。用于指定绘图使用的字体样式。1=常规,2=粗体,3=斜体,4=粗斜体,5=

符号字体

font.axis坐标轴刻度文字的字体样式

font.lab坐标轴标签(名称)的字体样式

font.main标题的字体样式

font.sub副标题的字体样式

ps字体磅值(1磅约为1/72英寸)。文本的最终大小为 ps*cex

family绘制文本时使用的字体族。标准的取值为serif(衬线)、sans(无衬线)和mono(等宽)

1.4 图形尺寸与边界尺寸

表5 用于指定图形尺寸与边界尺寸的参数参数描述

pin以英寸表示的图形尺寸(宽和高)

mai以数值向量表示的边界大小,顺序为“下、左、上、右”,单位为英寸

mar以数值向量表示的边界大小,顺序为“下、左、上、右”,单位为英分*。默认值为c(5, 4, 4, 2) +  0.1

oma设定图形的内边界

关于边界参数的完整指南,不妨参阅Earl F. Glynn编写的一份全面的在线教程(http://research.stowers-institute.org/efg/R/Graphics/Basics/mar-oma/)

2.1 标题

可以使用title( )函数为图形添加标题和坐标轴标签。函数title( )中亦可指定其他图形参数(如文本大小、字体、旋转角度和颜色)。调用格式为:

title(main=“main title”,sub=”sub-title”,xlab=”x-axis label”,ylab=”y-axis label”)

2.2 坐标轴

使用函数axis( )来创建自定义的坐标轴,而非使用R中的默认坐标轴。其格式为:

axis(side,at=,labels=,pos=,lty=,col=,las=,tck=,..)

表6 坐标轴选项选项描述

side一个整数,表示图形在哪边绘制坐标轴(1=下,2=左,3=上,4=右)

at一个数值型向量,表示需要绘制刻度线的位置

labels一个字符型向量,表示置于刻度线旁边的文字标签(如果为NULL,则直接使用at中的值)

pos坐标轴线绘制位置的坐标(即与另一条坐标轴相交位置的值)

lty线条类型

col线条和刻度线的颜色

las标签是否平行(=0)或垂直于(=2)坐标轴

tck刻度线的长度,以相对于绘图区域大小的分数表示(负值表示在图形外侧,正值表示在图形内侧,0表示禁用刻度线,1表示绘制网格线);默认值为-0.01

…其他图形参数

创建自定义坐标轴时,你应当禁用高级绘图函数自动生成的坐标轴。参数axes=FALSE将禁用全部坐标轴(包括坐标轴框架线,除非你添加了参数frame.plot=TRUE)。参数xaxt="n"和yaxt="n"将分别禁用X轴或Y轴(会留下框架线,只是去除了刻度)。次要刻度线

注意,我们最近创建的图形都只拥有主刻度线,却没有次要刻度线。要创建次要刻度线,你需要使用Hmisc包中的minor.tick()函数。

minor.tick(nx=n, ny=n, tick.ration=n)

其中nx和ny分别指定了X轴和Y轴每两条主刻度线之间通过次要刻度线划分

得到的区间个数。tick.ratio表示次要刻度线相对于主刻度线的大小比例。当前的主刻度线长度可以使用par("tck")获取。

2.3 参考线

函数abline()可以用来为图形添加参考线。函数abline()中也可以指定其他图形参数(如线条类型、颜色和宽度)。其使用格式为:

abline(h=yvalues,v=xvalues)

2.4 图例

使用函数legend()来添加图例(果然不出所料)。其使用格式为:

Legend(location,title,legend,…)

表7 图例选项选项描述

location有许多方式可以指定图例的位置。你可以直接给定图例左上角的x、y坐标,也可以执行locator(1),然后通过鼠标单击给出图例的位置,还可以使用关键字bottom、bottomleft、left、topleft、top、topright、right、bottomright或center放置图例。如果你使用了以上某个关键字

title图例标题的字符串(可选)

legend图例标签组成的字符型向量

bty指定盒子样式

bg指定背景色

cex指定大小

text.col指定文本颜色

…其他选项。如果图例标示的是颜色不同的线条,需要指定col=加上颜色值组成的向量。如果图例标示的是符号不同的点,则需指定pch=加上符号的代码组成的向量。如果图例标示的是不同的线条宽度或线条类型,请使用lwd=或lty=加上宽度值或类型值组成的向量。要为图例创建颜色填充的盒形(常见于条形图、箱线图或饼图),需要使用参数fill=加上颜色值组成的向量。

2.5 文本标注

我们可以通过函数text()和mtext()将文本添加到图形上。text()可向绘图区域内部添加文本,而mtext()则向图形的四个边界之一添加文本。使用格式分别为:

text(location,“text to place”,pos,…)

mtext(“text to place”,side,line=n,…)

表8 函数text()和mtext()的选项选项描述

location文本的位置参数。可为一对x,y坐标,也可通过指定location为locator(1)使用鼠标交互式地确定摆放位置

pos文本相对于位置参数的方位。1=下,2=左,3=上,4=右。如果指定了pos,就可以同时指定参数offset=作为偏移量,以相对于单个字符宽度的比例表示

side指定用来放置文本的边。1=下,2=左,3=上,4=右。你可以指定参数line=来内移或外移文本,随着值的增加,文本将外移。也可使用adj=0将文本向左下对齐,或使用adj=1右上对齐

其他常用的选项有cex、col和font(分别用来调整字号、颜色和字体样式)。除了用来添加文本标注以外,text( )函数也通常用来标示图形中的点。我们只需指定一系列的x, y坐标作为位置参数,同时以向量的形式指定要放置的文本。x、y和文本标签向量的长度应当相同。

数学标注

可以使用类似于TeX中的写法为图形添加数学符号和公式。请参阅help(plotmath)以获得更多细节和示例。要即时看效果,可以尝试执行demo(plotmath)。

3 图形的组合

在R中使用函数par()或layout()可以容易地组合多幅图形为一幅总括图形。

函数layout()的调用形式为layout(mat),其中的mat是一个矩阵,它指定了所要组合的多个图形的所在位置。

图形布局的精细控制

要理解这幅图的绘制原理,请试想完整的绘图区域:左下角坐标为(0,0),而右上角坐标为(1,1)。图3是一幅示意图。参数fig=的取值是一个形如c(x1,x2, y1, y2)的数值向量。fig=默认会新建一幅图形,所以在添加一幅图到一幅现有图形上时,请设定参数new=TRUE。

图3 图形布局示意图

r语言 图形一览_R语言实战—图形篇(图形初阶)相关推荐

  1. r语言 图形一览_R语言实战(第2版):第三章 图形初阶(01)

    注:如果在头条里面的代码不清楚,可以在""简书""中搜索"康华同学",同步更新!!! 3.1 使用图形 R是一个惊艳的图形构建平台.这里我特 ...

  2. r语言 图形一览_R语言常见图形(1)

    本文涉及的基础图形有条形图.饼图.直方图.核密度图.箱线图.点图. 条形图 条形图通过垂直或水平的条形展示类别变量的分布(频数). 函数barplot() 调用格式: barplot(height) ...

  3. r语言 图形一览_R语言统计与绘图:ggplot2图形组合布局

    在科研论文中,有时我们需要绘制几张图形,并将这几张图形整合到一张大图上面. 前面我们学习了基础绘图包怎么组合布局图形,今天来学习两个新函数,看ggplot2绘制的图形怎么组合. ggplot2组合图形 ...

  4. r语言 图形一览_R语言之图形概览

    本文将讨论用R语言自带的基本绘图系统和ggplot2包来讨论基本图形的绘制. 一.条形图(bar chart): 我在学习这部分时会遇到这样的困惑,觉得条形图(bar chart)和直方图(histo ...

  5. r语言electricity数据集_R语言实战学习

    <R语言实战>中文电子版 提取码:lx35 已经学习打卡R语言22天了,可以说是初窥真容--基本了解R的数据和函数:作为程序语言,就是要多练习,多领悟,在实战中发现问题并解决问题. 所以, ...

  6. r语言 悲观剪枝_R语言实战(5) ——高级数据管理

    往期回顾: R语言实战(1)--R语言介绍 R语言实战(2)--创建数据集 R语言实战(3)--图形初阶 R语言实战(4) --数据管理 本期是我们推出<R语言实战>赠书活动的最后一天啦! ...

  7. r语言清除变量_R语言(1)初识与数据结构

    点击上方蓝字,记得关注我们! a picture is worth a thousand words! 一,R语言简介 1,R语言的发展 上世纪90年代初,新西兰奥克兰大学 Ross Ihaka 和 ...

  8. r - 求平均成绩_R语言 从零开始的笔记(一)

    R是用于统计分析.绘图的语言和操作环境.R是属于GNU系统的一个自由.免费.源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具. R语言于生物学分析中的应用越来越广泛,在其他领域的统计绘图应用 ...

  9. r语言mfrow全程_R语言(绘图入门)

    原文链接:https://wklchris.github.io/R-plotting-basic.html R 的绘图功能一直为业内所津津乐道.用了 Python 的 matplolibt 和 R 的 ...

最新文章

  1. DeeCamp 2020 赛题大公开!快来看你想选哪个
  2. python实现图片转字符画_Python实现图片转字符画的示例代码
  3. 常见排序算法的C#实现
  4. linux lzo 压缩文件,Linux常用压缩和解压命令
  5. python的ctypes模块详解数组_python ctypes结构数组
  6. 763 划分字母区间
  7. 烟台大学计算机与控制工程学院研究生导师,烟台大学计算机与控制工程学院欢迎大家...
  8. python程序如何执行死刑_「Python基础知识」Python生成器函数
  9. 股票市值高好还是低好呢?
  10. mysql的下载及安装(windows)
  11. pdf类型转换器打印机
  12. 电商后台管理系统项目总结(一)
  13. 慎用JSON.stringify
  14. 现代控制理论(4)——李雅普诺夫稳定性理论
  15. 世界最小的QI标准无线充电接收模块,亲测不错。
  16. 【Linux】yum卸载恢复
  17. WIN 10关闭更新
  18. 【精选】表情包斗图小程序(可引流,开通流量主,权益外卖cps,带pc后台管理)
  19. 实现32/64位Windows虚拟扫描仪自定义图片加载
  20. C语言程序设计教程 北京邮电,C语言程序设计教程(第3版)/ 杨路明 9787563543403 北京邮电...

热门文章

  1. Jenkins定时构建:一分钟构建一次
  2. python爬虫--根据身份证号码获取户籍地、出生年月等信息
  3. 刷完这套题,我才发现Verilog原来如此简单----HDLBits答案系列---- Latches and Flip-Flops
  4. Sysbench性能测试(二): sysbench基本使用和CPU性能测试
  5. unity 接入shareSDK进行微信分享(记录)
  6. 机器学习-近9年双色球开奖数据的频繁项集
  7. Android开发最佳实践---Futurice之见
  8. elasticsearch详解(简介)
  9. 二叉树的前、中、后、层次非递归遍历(js)
  10. Linux mc命令