R绘图笔记 | R语言绘图系统与常见绘图函数及参数

一. R语言绘图系统

在 R 里,主要有两大底层图形系统,一是 base 图形系统,二是 grid 图形系统。lattice 包与 ggplot2包正是基于 grid 图形系统构建的,它们都有自己独特的图形语法。

install.packages("shiny")install.packages("ggsci")install.packages("esquisse")

1.base系统
· 由Ross Ihaka编写
· base图形是最古老的系统,在R的初期就存在
· 容易上手
· 修改方便,使用灵活
· 不一定非常美观,需要调整参数修改
· 使用较多
2.grid系统
grid 图形系统可以很容易地控制图形基础单元,由Paul Murrell(2006)编写,给予编程者创作图形极大的灵活性。grid 图形系统还可以产生可编辑的图形组件,这些图形组件可以被复用和重组,并能通过 grid.layout()等函数,把图形输出到指定的位置上。但是因为 grid 包中没有提供生成统计图形及完整绘图的函数,因此很少直接采用 grid 包来分析与展示数据。
3.lattice系统
lattice 包通过一维、二维或三维条件绘图,即所谓的栅栏(trellis)图来对多元变量关系进行直观展示。相比于 base()函数是直接在图形设备上绘图的,lattice()函数是返回 trellis 对象。在命令执行的时候,栅栏图会被自动打印,所以看起来就像是 lattice()函数直接完成了绘图。更多关于 base、grid 和 lattice 的语法可以参考 Murrell 和 Paul 所撰写的书籍 R graphics。
4.ggplot2系统
ggplot2 包则基于一种全面的图形语法,提供了一种全新的图形创建方式,这套图形语法把绘图过程归纳为数据(data)、转换(transformation)、 度量(scale)、 坐标系(coordinate)、元素(element)、指引(guide)、显示(display)等一系列独立的步骤,通过将这些步骤搭配组合,来实现个性化的统计绘图。于是,得益于该图形语法,Hadley Wickham 所开发的 ggplot2 包是如此人性化,不同于 R base基础绘图和先前的 lattice 包那样参数繁多,而是摈弃了诸多烦琐细节,并以人性化的思维进行高质
量作图。在 ggplot2 包中,加号(+)的引入是革命性的,这个神奇的符号完成了一系列图形语法叠加。更多 ggplot2 的使用与学习可以参考两本关于 ggplot2 的经典书籍:ggplot2 Elegant Graphicsfor Data Analysis和 R Graphics Cookbook。
一般的绘图,base+ggplot2就已经够用了,所以,我们的课程就是以这2个系统进行绘图教学。
ggplot2 是一个功能强大且灵活的 R 包,由 Hadley Wickham 编写,它可以生成优雅而实用的图形。ggplot2 中的 gg 表示图形语法(grammar of graphic),这是一个通过使用“语法” 来绘图的图形概念。ggplot2 主张模块间的协调与分工,整个 ggplot2 的语法框架如图 1-6-1 所示,主要包括数据绘图部分与美化细节部分。R ggplot2 图形语法的主要特点如下所示。
(1)采用图层的设计方式,有利于结构化思维实现数据可视化。有明确的起始(ggplot()开始)与终止,图层之间的叠加是靠“+”实现的,越往后,其图层越在上方。通常一条 geom_xxx()函数或 stat_xxx()函数可以绘制一个图层。
(2)将表征数据和图形细节分开,能快速将图形表现出来,使创造性的绘图更加容易实现。而且通过 stat_xxx()函数将常见的统计变换融入绘图中。
(3)图形美观,扩展包(extension package)丰富,有专门调整颜色(color)、字体(font)和主题(theme)等辅助包。可以帮助用户快读定制个性化的图表。

ggplot2 的绘图基本语法结构如上图所示。其中所需的图表输入信息如下所示。
(1)ggplot():底层绘图函数。DATA 为数据集,主要是数据框(data.frame)格式的数据集;MAPPINGS 变量的视觉通道映射,用来表示变量 x 和 y,还可以用来控制颜色(color)、大小(size)或形状(shape)等视觉通道;STAT 表示统计变换,与 stat_xxx()相对应,默认为"identity"(无数据变换);POSITION 表示绘图数据系列的位置调整,默认为"identity"(无位置调整)。
(2)geom_xxx() | stat_xxx():几何图层或统计变换,比如常见的 geom_point()(散点图)、geom_bar()(柱形图)、 geom_histogram()(统计直方图)、 geom_ boxplot()(箱形图)、 geom_line()(折线图)等。我们通常使用 geom_xxx()函数就可以绘制大部分图表,有时候通过设定 stat 参数可以先实现统计变换。
可选的图表输入信息包括如下 5 个部分,主要是实现图表的美化与变换等。
(1)scale_xxx():度量调整,调整具体的度量,包括颜色(color)、大小(size)或形状(shape)等,跟 MAPPINGS 的映射变量相对应;
(2)coord_xxx():坐标变换,默认笛卡儿坐标系,还包括极坐标系、地理空间坐标系等;
(3)facet_xxx():分面系统,将某个变量进行分面变换,包括按行、列和网格等形式分面绘图。
(4)guides():图例调整,主要包括连续型和离散型两种类型的图例。
(5)theme():主题设定,主要用于调整图表的细节,包括图表背景颜色、网格线的间隔与颜色等。

二. R绘图常见函数与参数

1.低水平绘图函数

lines() 添加线curve() 添加曲线abline() 添加给定斜率的线points() 添加点segments() 折线arrows() 箭头axis() 坐标轴box() 外框title() 标题text() 文字mtext() 图边文字

2.高水平绘图函数

plot() 绘制散点图等多种图形hist() 直方图boxplot() 箱线图stripchart() 点图barplot() 条形图dotplot() 点图piechart() 饼图interaction.plot()matplot()

3.常用的绘图参数
参数用在函数内部,在没有设定值时使用默认值。

font= 字体lty= 线类型lwd= 线宽度pch= 点的类型xlab= 横坐标ylab= 纵坐标xlim= 横坐标范围ylim= 纵坐标范围pch:指定绘制点所使用的符号,取值范围[0, 24],其中4是“差号”,20是“点”cex:指定符号的大小。cex是一个数值,表示pch的倍数,默认是1.5倍lty:指定线条类型。lty=1代表实线,2至6都是虚线,虚的程度不一样lwd:指定线条宽度,默认值为lwd=1,可以适当修改1.5倍、2倍等col:默认绘图颜色。某些函数(如lines、pie)可以接受一个含有颜色值的向量,并自动循环使用。 例如:col=c("red", "blue")需要绘制三条线,那么三条颜色分别为red、blue、redcol.axis:坐标轴刻度文字的颜色,不是坐标轴的颜色col.lab:坐标轴标签(名称)的颜色col.main:标题的颜色col.sub:副标题的颜色fg:图形的前景色bg:图形的背景色cex.axis:坐标轴刻度文字的缩放倍数cex.lab:坐标轴标签(名称)的缩放倍数cex.main:标题的缩放倍数cex.sub:副标题的缩放倍数font:整数。用于指定字体样式。1常规、2粗体、3斜体、4粗斜体pin:以英寸表示图形的宽和高mai:以数值向量表示边界大小,顺序为"下、左、上、右",单位为英寸mar:以数值向量表示边界大小,顺序为"下、左、上、右",单位为英分,默认值c(5, 4, 4, 2)+0.1主标题可以使用函数title,格式为:title(main = " ", sub = " ", xlab = " ",  ylab = " ")

参考书籍:R语言数据可视化之美

(0)

相关推荐

  • 【R分享|实战】科白君浅谈ggplot2包学习逻辑

    " 量变学习,过程深思,总结完善,突破创新."   --科白君 "R分享实战"专刊·第11篇   编辑 | 科白维尼   2671字 | 7分钟阅读 本期推文内 ...

  • cowplot-组图

    欢迎来到医科研,这里是白介素2的读书笔记,跟我一起聊临床与科研的故事, 生物医学数据挖掘,R语言,TCGA.GEO数据挖掘. cowplot包 cowplot包是ggplot2的简单附加组件.它旨在为 ...

  • R学习:R for Data Science(二)

    R语言学习系列 昨天我们开始了R for Data Science这本书的学习,今天我们来继续学习 R学习:R for Data Science(一) 分面 添加额外变量的一种方法是使用图形属性.另一 ...

  • 绘制单组和多组柱状图

    " No one knows everything, and you don't have to."   --free傻孩子 "R数据分析"专题·第6篇   编 ...

  • 《R数据科学》第1章-ggplot2图层与绘图大法-全

    《R数据科学》第1章-ggplot2图层与绘图大法-全

  • R学习:R for Data Science(一)

    R语言学习系列 今天我们来开始一起学习一本书:R for Data Science 数据科学是一个极其广阔的领域,仅靠一本书是不可能登堂入室的.本书的目标是教会你使用最重要的数据科学工具.在一个典型的 ...

  • 技术贴 | R语言物种组成分析和绘图

    本文由阿童木根据实践经验而整理,希望对大家有帮助. 原创微文,欢迎转发转载. 导读 宏基因组分析分为物种分析和功能分析两大块.物种组成分析是物种分析中最基本最常见的分析方法.利用R语言堆叠图,我们可以 ...

  • R绘图笔记 | 一般的散点图绘制

    R绘图笔记 | 一般的散点图绘制

  • R绘图笔记 | 柱状图绘制

    R绘图笔记 | 柱状图绘制

  • R绘图笔记 | 直方图和核密度估计图的绘制

    前面,介绍过散点图绘制,也介绍了柱状图的绘制.本文介绍直方图和核密度估计图的绘制. 1.直方图 直方图是数值数据分布的精确图形表示.这是一个连续变量(定量变量)的概率分布的估计,并且被卡尔·皮尔逊(K ...

  • R绘图笔记 | 二维散点图与统计直方图组合

    前面介绍了散点图.柱状图.直方图和核密度估计图,有时候散点图不能很直观的看的出数据的分布情况,这里介绍散点图与统计直方图组合绘制. 一.方法1 利用ggpubr包的ggscatterhist()函数进 ...

  • R绘图笔记 | 散点分布图与柱形分布图

    关于绘图图,前面介绍了一些: 这里介绍散点分布图与柱形分布图,这些图形在文章中是很常见的,也是必须要掌握的. 一.读入数据 如果你想获取该数据用于自己练习,下面是获取数据的地址: https://do ...

  • R绘图笔记 | 箱形图的绘制

    关于绘图图,前面介绍了一些: 这里介绍箱形图的绘制,这些图形在文章中是很常见的,也是必须要掌握的.比如下图中的E图(来自文献:DOI: 10.1002/jcp.30015 ) 一.读入数据 如果你想获 ...

  • R绘图笔记 | 小提琴图与漂亮的云雨图绘制

    关于绘图图,前面介绍了一些: R绘图笔记 | 一般的散点图绘制 R绘图笔记 | 柱状图绘制 R绘图笔记 | 直方图和核密度估计图的绘制 R绘图笔记 | 二维散点图与统计直方图组合 R绘图笔记 | 散点 ...

  • R绘图笔记 | 多数据系列的箱型图与带抖动散点的多数据系列箱型图

    关于绘图,前面介绍了一些: R绘图笔记 | 一般的散点图绘制 R绘图笔记 | 柱状图绘制 R绘图笔记 | 直方图和核密度估计图的绘制 R绘图笔记 | 二维散点图与统计直方图组合 R绘图笔记 | 散点分 ...