ggplot2:数据分析与图形艺术 学习笔记03---第三章 语法突破

浏览: 1535

3.1 简介

ggplot2的理论基础:图形 图层语法

对于普通用户而言,使得图形的重复更新变得更简单

对于开发人员而言,图层语法使得向ggplot2里添加新功能变得更方便


3.2 耗油量数据

该数据集记录了美国1999年和2008年部分汽车的制造厂商、型号、类别、引擎大小、传动系和耗流量等信息

cty和hwy分别记录城市和高速公路驾驶时的耗油量(英里每加仑)

library(ggplot2)
head(mpg,10)
?mpg
   manufacturer      model displ  year   cyl      trans   drv   cty   hwy    fl   class
<chr> <chr> <dbl> <int> <int> <chr> <chr> <int> <int> <chr> <chr>
1 audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
2 audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
3 audi a4 2.0 2008 4 manual(m6) f 20 31 p compact
4 audi a4 2.0 2008 4 auto(av) f 21 30 p compact
5 audi a4 2.8 1999 6 auto(l5) f 16 26 p compact
6 audi a4 2.8 1999 6 manual(m5) f 18 26 p compact
7 audi a4 3.1 2008 6 auto(av) f 18 27 p compact
8 audi a4 quattro 1.8 1999 4 manual(m5) 4 18 26 p compact
9 audi a4 quattro 1.8 1999 4 auto(l5) 4 16 25 p compact
10 audi a4 quattro 2.0 2008 4 manual(m6) 4 20 28 p compact

引擎大小和耗油量有什么关系?


3.3 绘制散点图

qplot(displ,hwy,data = mpg,colour = factor(cyl))

Clipboard Image.png

通过该图,发现影响耗油量的一个很重要的因素:发动机的排量大小

图形属性数据的映射

散点图,每个观测数据都用一个点(.)来表示

每个点不仅有横坐标和纵坐标,还有大小、颜色和形状,这些属性称之为 图形属性(aesthetics)

每个图形属性都可以映射为一个变量或者设定成一个常数

上图中,变量displ控制点的水平位置,变量hwy控制点的竖直位置,变量cyl控制点的颜色

点的大小和形状没有指定映射的变量,使用的是默认值


除了用点表示数据,我们也可以使用线或条(虽然没有什么意义,但语法是正确的)

qplot(displ,hwy,data = mpg,geom = "line")
qplot(displ,data = mpg,geom = "bar")

Clipboard Image.pngClipboard Image.png

点,线和条都是几何对象的具体形式,被称作geom,几何对象决定了图形的"类型"。


标度变换

数据集中的数值对于电脑没有任何意义,我们需要把他们从数据单位(如气缸数,英里每加仑)转换成电脑可以识别的物理单位(如像素和颜色)

这个转换过程称之为 标度变换(scaling)

水平位置x,竖直位置y,只需将数据的范围线性映射到[0,1]的区间上即可

颜色用6个字母组成的十六进制字符来表示,大小和形状分别用数字和整数表示

最后,对这些数据进行渲染,生成能在屏幕上展示的图形对象


3.4 更复杂的图形示例

qplot(displ,hwy,data = mpg,facets = .~year) + geom_smooth()

Clipboard Image.png

平滑曲线层与散点层的不同点在于它没有展示原数据

而是展示了统计变换后的数据。

因为添加了统计变换,所以在进行标度变换时需要添加额外的步骤

因为现在我们有多个数据集,所以需要确保所有的变换在各个数据集里都是相同的

标度变换实际上出现在三个地方:

标度转换(transforming),标度训练(training)和标度映射(mapping)

之前的双对数(log-log)图中看到了标度转换,数据值不是线性映射到图形上的位置,而是进行了对数变换


3.5 图层语法的组件

总的来说,图层语法所定义的图由以下几部分组成

一个默认的数据集和一组从变量到图形属性的映射

一个或多个图层,每个都由一种几何对象、一种统计变换和一种位置调整组成

标度,每个图形属性映射都对应一个标度

一个坐标系统

分面设定


3.5.1 图层

图层的作用是生成在图像上可以被人感知的对象,一个图层由4部分组成:

# 数据和图形属性映射

# 一种统计变换

# 一种几何对象

# 一种位置调整方式


3.5.2 标度

标度控制数据到图形属性的映射,并且图形上所有的每一个图形属性都对应一个标度。

每个标度都作用与图形中的所有数据,以确保从数据到图形属性映射的一致性。


3.5.3 坐标系

坐标系,coord,可将对象的位置映射到图形平面上,位置通常由两个坐标(x,y)决定


3.5.4 分面

分面是条件绘图和网格绘图的一般形式,通过它你可以方便的展示数据的不同子集。

推荐 1
本文由 Parlan怕冷 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册