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

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.png

Clipboard 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 分面

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值