### 3.2 用ggplot2作图 ggplot2是目前流行的R绘图包,作者是Hadley Wickham, R领域的牛人,另一个流行的R包dplyr也是他的作品. ggplot2是The Grammar of Graphics的实现.这是一种优雅的绘图语法,gg是它的缩写.使用ggplot2,你只需要提供数据,要绘制什么样的图形,并告诉数据与图形属性的映射(对应)关系,其余的任务你就不用关心了,由ggplot2帮你完成. 数据的结构我们在前面的章节中已经讲过.数据很抽象,不便于理解.把抽象的数据用直观的图形方式表示出来,人们就很容易看到数据的特征.把数据的逻辑映射到图形的过程叫做数据的可视化(data visualization).数据可视化是数据分析和理解的必不可少的步骤. 图形由多个图形对象构成,图形对象是几何对象(geometry object, 简称geom),包括点、线、面、体等,每个图形又有它的视觉属性(aesthetics attribute, 简称aes, aesthetics的意思是美学、美术,这里指图形的视觉特性),包括在图形中的位置、大小、粗细、颜色、阴影等。根据需要建立的数据与图形及其属性之间的对应关系叫做映射(mapping)。 ggplot2中图形的组成部分有: * data: 数据,数据是图形的基础,是描述事物的基本变异。数据的结构决定图形的选择。 * geoms: 几何图形 * mappings: 数据到几何图形的映射 * stats:统计转换(statistical transform, 缩写为stats) * scales: 标尺。标尺把数据空间的值映射到图形的视觉属性,可以是颜色(color)、形状(shape)或大小(size)。scales绘制图例(legend)或者坐标轴(axis)。标尺是度量的基准。 * coord: 坐标系(coordinate system,缩写为coord),坐标系决定数据向图形表面的映射方式和具体程度。 * facet: 查英汉词典,facet是小平面,方面的意思。在ggplot中一般翻译成“分面”,说实在并不太好,可也找不到更好的词儿来代替。用的人多了,也就习惯了。 #### 图形结构 ggplot图形有图层组成,一个图形(graph)可以包含一到多个图层,默认一个图层,更多的图层可以添加。每个图层都包括数据(data)、视觉属性映射(aesthetic mapping)、几何类型(geom)、统计(stat)、位置调整(position adjustment)五部分组成。 ```{r} p <- ggplot(dataframe, aes(yday, EVI, colour=year) ``` ggplot函数的第一个参数为数据(data)。data一般是数据框(data.frame),如果不是数据框,将会自动转换成数据框,数据框也可以在图层中指定。data数据框的字段名(colnames)可以直接用于指定视觉属性,aes也可以在图层中指定,字段名可以用引号括起来,也可以不用。 aes的语法aes(x, y, ...),第一个参数指定x轴的字段,第二个参数指定y轴字段,...代表其他属性,如color, size, shape等。 没有给定任何参数的ggplot()函数构建一个空图形,这个图形可以赋值个一个变量,如p<-ggplot()。赋值命令不会显示图形,R命令行下输入p才打印图形。 #### ggplot语法 ### 用qplot快速作图 qplot函数是qqplot的简化版,在处理常用的不太复杂的作图任务时可以简化构图语法,好理解,少打字。 学习资源:[R for Data Science](http://r4ds.had.co.nz/)