R语言之数据可视化(第三章Note)

第三章 R的绘图系统

目录:

  • 3-1 三大绘图系统简介
  • 3-2 基本绘图系统之基础知识
  • 3-3 基本绘图系统之实践
  • 3-4 基本绘图系统之全局变量
  • 3-5 Lattice绘图系统之基础知识
  • 3-6 Lattice绘图系统之实践
  • 3-7 ggplot2绘图系统之基础知识
  • 3-8 ggplot2绘图系统之qplot
  • 3-9 ggplot2绘图系统之ggplot
  • 3-10 R Color
  • 3-11 图形设备
  • 3-12 探索性数据分析

3-1 三大绘图系统简介

基本绘图系统(Base Plotting System)

  • 艺术家的调色板:绘图始于空白帆布(需要事先计划;直观地实时反映绘图和分析数据的逻辑)
  • 两个步骤 = 画图 + 修饰/添加 = 执行一系列函数
  • 适于绘制2D图

Lattice绘图系统(Lattice Plotting System)

  • 绘图 = 使用一次函数调用(一次成图)
  • 特别适用于观察变量间的交互:在变量z的不同水平,变量y如何随变量x变化

ggplot2绘图系统(ggplot2 Plotting System)

  • The Grammar of Graphics
  • 图:动词、名词、形容词等
  • 数据映射到几何客体(points/lines/bars)的美学属性(颜色/形状/大小)
  • 基本绘图系统 + Lattice绘图系统
  • 自动处理标题/文字说明/空间等,但也允许通过添加注释进行修改

3-2 基本绘图系统之基础知识

绘图函数(graphics包)

  • plot(散点图) / hist(柱状图) / boxplot(箱图) / points(点) / lines(线) / text(添加文本) / title(命名) / axis(坐标轴)
  • 调用函数会启用一个图形设备(如果没有正在运行的图形设备)并在设备上绘图
  • 基本绘图系统 + 屏幕设备上的绘图

plot()

  • 调用格式:plot(x, y, …)
  • 重要参数:xlab(x轴标签) / ylab(y轴标签) / lwd(线的宽度) / lty(线的类型) / pch(点的类型) / col(图的颜色) …
  • 了解其他重要参数:?par

par()

  • 用于设置全局参数(作用于R中的所有plot绘图)
  • bg(背景色) / mar(边距) / las(排版) / mfrow(按行的形式填充) / mfcol(按列的形式填充)
  • 这些参数可以在每次plot之前进行修改(可以不作用于全局的plot绘图)

3-3 基本绘图系统之实践

基本绘图系统绘图步骤:

  • 使用基本绘图工具绘图
  • 添加/修饰

绘图

1. 柱状图

R语言之数据可视化(第三章Note)_第1张图片

2. 箱图

R语言之数据可视化(第三章Note)_第2张图片

3. 并排箱图

R语言之数据可视化(第三章Note)_第3张图片

4. 散点图

R语言之数据可视化(第三章Note)_第4张图片

添加/修饰

1. 添加title

R语言之数据可视化(第三章Note)_第5张图片

2. 设置type = n

R语言之数据可视化(第三章Note)_第6张图片

3. 设置不同颜色

R语言之数据可视化(第三章Note)_第7张图片

4. 添加回归线

R语言之数据可视化(第三章Note)_第8张图片

5. 添加图例说明

R语言之数据可视化(第三章Note)_第9张图片

3-4 基本绘图系统之全局参数

1. 查看默认的全局参数

R语言之数据可视化(第三章Note)_第10张图片

2. 设置全局参数

R语言之数据可视化(第三章Note)_第11张图片

R语言之数据可视化(第三章Note)_第12张图片

3-5 Lattice绘图系统之基础知识

绘图函数(lattice包)

  • xyplot(散点图) / bwplot / histogram(柱状图) / stripplot / dotplot(点图) / splom / levelplot / contourplot
  • 格式:xyplot(y(因变量) ~ x(自变量) | f * g(分类变量), data)
  • panel函数,用于控制每个面板内的绘图

绘图函数(grid包):

  • 实现了独立于base的绘图系统
  • lattice包是基于grid包创建的,很少直接从grid包中调用函数

Lattice与Base的重要区别:

  • Base绘图函数直接在图形设备上绘图
  • Lattice绘图函数返回trellis类对象(打印函数真正执行了在设备上绘图。但在命令执行时,trellis类对象会被自动打印,所以看起来就像时lattice函数直接完成了绘图)

3-6 Lattice绘图系统之实践

1. 使用xyplot函数,生成普通散点图

R语言之数据可视化(第三章Note)_第13张图片

2. 加入分类变量

R语言之数据可视化(第三章Note)_第14张图片

3. 验证xyplot函数会返回一个对象,而不是直接输出图

R语言之数据可视化(第三章Note)_第15张图片

4. 绘图举例

R语言之数据可视化(第三章Note)_第16张图片

5. 自定义面板样式

R语言之数据可视化(第三章Note)_第17张图片

3-7 ggplot2绘图系统之基础知识

最高大上的绘图系统ggplot2:

  • 层(Layer):不同的层对应着不同词性的词,比如:动词、名词、形容词。

R语言之数据可视化(第三章Note)_第18张图片

  1. 第一种层:数据(感兴趣的变量)
  2. 第二种层:是和美学属性相关的,比如:x轴,y轴,颜色,填充的颜色,形状,标签等等。
  3. 第三种层:几何课题层,比如:点图、线、柱状图等等
  4. 第四种层:面,绘图面板的划分
  5. 第五种层:统计层,可以给图中添加统计信息
  6. 第六种层:是坐标系,是笛卡尔坐标系还是极坐标系
  7. 第七种层:是主题,也就是和数据本身无关的风格的设置。

绘图函数qplot():

  • 类似于Base系统的plot(),参数包含aesthetics/geom/facet
  • 隐藏了绘图实现的细节(灵活性欠佳)

绘图函数ggplot():

  • 是整个绘图系统的核心,可以实现qplot()函数无法实现的功能
  • 调用ggplot()本身并不能实现绘图,要在其几处上添加层(如:geom_point)才可以实现真正的绘图

3-8 ggplot2绘图系统之qplot

安装加载ggplot2包:

R语言之数据可视化(第三章Note)_第19张图片

R语言之数据可视化(第三章Note)_第20张图片

使用qplot函数绘制散点图:

R语言之数据可视化(第三章Note)_第21张图片

设置其他的美学属性:color

R语言之数据可视化(第三章Note)_第22张图片

R语言之数据可视化(第三章Note)_第23张图片

设置其他的美学属性:shape

R语言之数据可视化(第三章Note)_第24张图片

设置其他的美学属性:size

R语言之数据可视化(第三章Note)_第25张图片

设置X,Y轴意义以及标题:

R语言之数据可视化(第三章Note)_第26张图片

设置几何课题:geom

R语言之数据可视化(第三章Note)_第27张图片

R语言之数据可视化(第三章Note)_第28张图片

设置与面(facets层)有关的参数:

R语言之数据可视化(第三章Note)_第29张图片

R语言之数据可视化(第三章Note)_第30张图片

绘制柱状图:

R语言之数据可视化(第三章Note)_第31张图片

R语言之数据可视化(第三章Note)_第32张图片

R语言之数据可视化(第三章Note)_第33张图片

R语言之数据可视化(第三章Note)_第34张图片

绘制几何课题geom:频率分布轮廓线

R语言之数据可视化(第三章Note)_第35张图片

绘制密度函数,也就是上面所说的”频率分布轮廓线“:

R语言之数据可视化(第三章Note)_第36张图片

绘制点图dotplot:

R语言之数据可视化(第三章Note)_第37张图片

3-9 ggplot2绘图系统是ggplot

使用ggplot绘制散点图:

R语言之数据可视化(第三章Note)_第38张图片

设置散点图的样式参数:

R语言之数据可视化(第三章Note)_第39张图片

在散点图中添加分类变量Month:

R语言之数据可视化(第三章Note)_第40张图片

添加统计信息层:

R语言之数据可视化(第三章Note)_第41张图片

设置显示统计信息层,而不显示几何客体层:

R语言之数据可视化(第三章Note)_第42张图片

单独设置统计信息层的参数:

R语言之数据可视化(第三章Note)_第43张图片

根据分类变量Month进行拟合:

R语言之数据可视化(第三章Note)_第44张图片

在设置分类变量的情况下,仍然对整个数据集进行拟合:

R语言之数据可视化(第三章Note)_第45张图片

同时设置两个统计层:

R语言之数据可视化(第三章Note)_第46张图片

自定义绘图颜色:

R语言之数据可视化(第三章Note)_第47张图片

设置不同的面板:

R语言之数据可视化(第三章Note)_第48张图片

设置主题:

R语言之数据可视化(第三章Note)_第49张图片

3-10 R ColorR语言绘图之颜色

grDevice包

  • colorRamp() & colorRampPalette()
  • 颜色名字可使用colors()获取

RColorRrewer包

  • 三类调色板:sequential / diverging / qualitative
  • 调色板信息可与colorRamp / colorRampPalette结合使用

R语言之数据可视化(第三章Note)_第50张图片R语言之数据可视化(第三章Note)_第51张图片R语言之数据可视化(第三章Note)_第52张图片

使用colorRamp()函数,选取颜色:

R语言之数据可视化(第三章Note)_第53张图片

使用colorRampPalette()函数,选取颜色:

R语言之数据可视化(第三章Note)_第54张图片

加载RColorBrewer包,并查看包中调色板的颜色:

R语言之数据可视化(第三章Note)_第55张图片

将RColorRrewer和colorRampPalette结合使用:
R语言之数据可视化(第三章Note)_第56张图片

查看调色板的颜色:

R语言之数据可视化(第三章Note)_第57张图片

3-11 图形设备

什么是图像设备:

  • 屏幕设备(探索型分析常用):电脑屏幕(windows() on Windows / quartz() on Mac / xll() on Unix or Linux)
  • 文件设备(打印/文章用图常用),分为(向量格式(vector format: PDF) 位图(bitmap format: PNG / JPEG / TIFF / BMP))
  • grDevices包(包含了实现各种图形设备的代码/ ?Devices如 PDF / PNG / BMP)

生成图形的两种途径:

  • 调用绘图函数(默认使用屏幕) ->屏幕设备显示图形 -> 进一步修饰图形
  • 明确指定图形设备 -> 调用绘图函数(如果指定的是文件设备则无法在屏幕上看到图形)-> 进一步修饰图形 -> 关闭图形设备dev.off()
  • 可同时打开多个图形设备,但一次只能在一个设备上绘图(dev.cur(): 找到当前活跃的设备 / dev.set():把指定设备设置为活跃的设备)

拷贝图形:

  • 多个设备之间互相拷贝:dev.copy(拷贝到PDF为你教案:dev.copy2pdf)
  • 注意:拷贝的结果可能与原图有出入

将图形绘制到文件设备中:

R语言之数据可视化(第三章Note)_第58张图片

输出结果如下:

R语言之数据可视化(第三章Note)_第59张图片

将屏幕上的图形,拷贝到文件设备中:

R语言之数据可视化(第三章Note)_第60张图片

拷贝结果如下:

R语言之数据可视化(第三章Note)_第61张图片

在绘图前请思考:

  • 在哪儿绘图(屏幕?文件)
  • 如何使用图(屏幕呈现?网页呈现?文章用图)
  • 用于绘图的数据量的大小?(向量格式 vs. 位图)
  • 是否许需要动态调整大小?(向量格式 vs. 位图)
  • 用哪个绘图系统(Base / Lattic / ggplot2)? 一般三者不混用

3-12 探索性数据分析

探索性数据分析的目的:

  • 了解数据特征、找到数据中的模式、形成分析策略
  • 图与数字相互验证、帮助发现错误、用于交流结果

探索性数据分析的特点:

  • 快速、通常呈现在屏幕设备
  • 不需要过分注重图是否漂亮

请注重六大作图原则:

  • 凸显比较(和谁比较?)
  • 凸显机制(因果/机制/解释)
  • 凸显多元性(>2个变量、逃离扁平)
  • 整合证据
  1. 整合文字、数字、图、表等
  2. 用多种方式显示数据的特征
  3. 不要让工具主宰分析
  • 使用适当的图标、尺度等
  1. 完备性、一图胜千言
  • 内容是王道
  1. 研究问题的重要性 > 作图漂亮

你可能感兴趣的:(R语言与数据可视化,R)