《qqplot2: 数据分析与图形艺术》第3章学习笔记


title: "《qqplot2: 数据分析与图形艺术》学习笔记2"
author: "wintryheart"
date: "2019年5月11日"
output:
html_document:
toc: TRUE
toc_float: TRUE


knitr::opts_chunk$set(echo = TRUE, warning = FALSE)

注意:本笔记使用的R的版本为3.6.0。

第3章 语法突破

3.2 耗油量数据

ggplot2包中的mpg数据集记录美国1999年和2008年部分汽车耗油量数据。变量包括:

变量名 含义 中文意思
manufacturer 制造商
model model name 型号
displ engine displacement, in litres 发动机排量
year year of manufacture 制造年份
cyl number of cylinders 汽缸数
trans type of transmission 传动类型
drv f = front-wheel drive, r = rear wheel drive, 4 = 4wd 驱动类型
cty city miles per gallon 城市耗油量
hwy highway miles per gallon 高速耗油量
fl fuel type 燃油类型
class "type" of car 车型
library(ggplot2)
library(gridExtra)
data(mpg)
head(mpg)


也可以调用其它包,把R数据整理成通用表格形式。常用的有stargazer包,knitr包和xtable包。
要调用其它包改变表格输出,首先要设置knitr的results参数,results='asis'。

results参数选项 含义 中文意思
hide not display the code’s results 不显示结果
hold delay displaying 延迟输出直至组块结束
markup mark up the results 默认值,装裱输出
asis pass through results without reformatting them 原样输出
t1 <- mpg[1:6, ]  #只展示前6个样本。
stargazer::stargazer(t1, summary=FALSE, type="html",  title = "Table with stargazer") #stargazer输出的表格太过紧凑,并不好看。注意stargazer默认输出summary statistics,如果要显示原始数据,要把参数summary设置为FASLE。

knitr::kable(t1, caption = "Table with kable") #knitr包的kable输出的是markdown格式的表格

print(xtable::xtable(t1, caption="Table with xtable"), type="html") #xtable包的xtablel输出的表格也太紧凑。不好看。

manufacturer model displ year cyl trans drv cty hwy fl class
audi a4 1.8 1999 4 auto(l5) f 18 29 p compact
audi a4 1.8 1999 4 manual(m5) f 21 29 p compact
audi a4 2.0 2008 4 manual(m6) f 20 31 p compact
audi a4 2.0 2008 4 auto(av) f 21 30 p compact
audi a4 2.8 1999 6 auto(l5) f 16 26 p compact
audi a4 2.8 1999 6 manual(m5) f 18 26 p compact


3.3散点图

qplot(displ, hwy, data=mpg, color=factor(cyl))
scatter-1.png

图形属性与数据的映射

  • 在散点图中,每个观测数据都用一个点来表示,点的位置由两个变量的值决定。

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

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

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

  • 而点的大小和形状都没有指定映射的变量,使用的默认值(常数)。

几何对象

  • 点(points)、线(lines)和条(bars)都是几何对象(geom)的具体形式。
  • 几何对象决定了图形的类型(type)。
  • 复杂的图形可以有由多种几何对象组成。

标度变换

  • 把数据单位(如升、加仑和汽缸数)转换成电脑可以识别的物理单位(如像素和颜色)的转换过程,称之为标度变换(scaling)

  • 转换后的数据对我们而言可能没有意义,但对电脑而言却是可识别的:

    • 颜色用6个字母组成的十六进制字符表示,如#FF6C91。
    • 大小和形状分别用数字和整数来表示。
  • 上图中,我们有三个图形属性需要进行标度变换:水平位置(x)、竖直位置(y)和颜色。

  • 如何根据点的位置(x和y)来确定它在图中的位置,由坐标系统(Coord)决定。大多数情况,使用笛卡尔坐标系,但有时也会用极坐标系或球投影。

  • 颜色变换是将数据的值映射到一个由三原色组成的三维的颜色空间中。

  • 最后对这些数据渲染,生成上展示的图形对象。

综上,绘制一个完整的图形,我们需要组合三类图形对象:

  • 数据, 由点来表示;
  • 标度和坐标系, 用来生成坐标轴和图例;
  • 图形注释, 如背景和标题。

3.4 更复杂的图形示例

  • 三种新的组件:分面、多个图层和统计量。
  • 每个图层的每个分面面板(facet panel)都含一个小数据集。
  • 平滑曲线层展示了统计变换后的数据。
qplot(displ, hwy, data = mpg, facets = .~year) + geom_smooth()
facet-1.png

3.5 图层语法的组件

图层语法所定义的图由以下几部分组成:

  • 一个默认的数据庥和一组从变量到图形属性的映射;
  • 一个或多个图层,每个都由一种几何对象、一种统计变换和一种位置调整组成;
  • 标度,每个图形属性映射都对应一个标度;
  • 一个坐标系统;
  • 分面设定。

3.6 数据结构

  • 一个图形对象就是一个包含数据映射图层标度坐标分面的列表。
  • 图形对象还有一个组件:options,专门用来存储特定的图形主题选项。
  • 绘图有两种方式:
    • “一步到位”式,qplot();
    • “逐层叠加”式,ggplot()+图层函数

当我们得到一个图形对象时,可以进行如下处理:

  • print()将其呈现在屏幕上。交互式操作时,print()会自动被调用,但在循环和函数里,需要手动输入print();
  • ggsave()保存到磁盘;
  • summary()查看它的结构;
  • save()保存缓存副本到磁盘;可以用load()调用重现图形。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,542评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,822评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,912评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,449评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,500评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,370评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,193评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,074评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,505评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,722评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,841评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,569评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,168评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,783评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,918评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,962评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,781评论 2 354

推荐阅读更多精彩内容