1. 简介
ggplot2的图层结构允许我们以结构化的方式来设计和构建图形。本章旨在概述若干关键实用的几何对象和统计变换,并未逐个详细介绍。
图层有三种用途:
- 用以展示数据本身。我们绘制原始数据的目的有很多,这取决于我们辨识数据整体结构、局部结构以及离群点等信息的能力。本层几乎在每张图像上都会出现。在数据挖掘的起步阶段,本层通常也是唯一的图层
- 用以展示数据的统计摘要。随着数据探索和建模的深入,在数据背景下检验模型的预测效果极为重要。我们可以从数据摘要中进一步了解数据,同时对模型作出评价。展示数据可以帮助我们改善模型,而展示模型可以帮助我们解释数据的微妙之处,这也是我们可能漏掉的信息。本层通常绘制在数据层之上
- 用以添加额外的元数据:上下文信息、注解和参考引用。元数据层可以展示背景信息,也可赋予原始数据有显示意义的注解,或提供其它学者意见已供比较参考。无论作为前景还是背景,元数据层都很有用
地图就经常作为空间数据的背景层。在绘制作为背景的元数据时,它不应该影响到主数据的展示,因此它往往被放置在主数据的下层,且在配色上尽可能不要太突出。
其它元数据可以用来强调数据中的重要特征。例如,元数据可以作为拐点或离群点添加解释标签,或使它们突出显示于图中,这种情况下,元数据图层通常是靠后的图层
2. 基本图形类型
以下几何对象是ggplot2的基本组成部分,每种几何对象自身既可独立构建图形,同时也可以组合起来构建更复杂的几何对象
这些几何对象都是二维的,因此x和y两种图形属性不可或缺
geom_area()用于绘制面积图,即在普通线图的基础上,依y轴方向填充了下方面积的图形。对于分组数据,各组将按照依次堆积的方式绘制
geom_bar(stat=“identity”)绘制条形图,我们需要指定stat=“identity”,因为默认的统计变换将自动对”值“进行计数。默认情况下,相同位置的多个条形图会以依次向上堆积的形式绘制
geom_line()绘制折线图,图形属性group决定了哪些观测是连接在一起的。geom_line()将各点从左至右进行连接,geom_path()与之类似,但其中的线条是根据它们在数据中出现的顺序进行连接的,这两类几何对象均接受linetype图形属性,即可将分类变量映射为实线、虚线和点线
geom_point()绘制****散点图,并支持shape图形属性
geom_polygon()绘制多边形,即填充后的路径。各行数据代表着多边形的各个顶点,绘图前把多边形的点数据坐标和原始数据合并往往更方便
geom_rect(),geom_tile()和geom_raster()绘制矩形,
geom_rect()由xmin、ymin、xmax和ymax即矩形的各顶点坐标参数定义
geom_tile()与之相同,但定义参数的是矩形的中心坐标和尺寸,即x、y、width和height
geom_raster()则是当所有瓦片大小相同时geom_title()的精简版
几何对象占据了数据本身范围以外的空间,所以坐标轴被自动拉伸了
df <- data.frame(x = c(3, 1, 5), y = c(2, 4, 6), label = c("a", "b", "c"))
p <- ggplot(df, aes(x, y, label = label)) +
labs(x = NULL, y = NULL)+ # 隐藏坐标轴标签
theme(plot.title = element_text(size = 12)) # 缩小标题尺寸
p + geom_point() + ggtitle("point")
p + geom_text() + ggtitle("text")
p + geom_bar(stat = "identity") + ggtitle("bar")
p + geom_tile() + ggtitle("raster")
p + geom_line() + ggtitle("line")
p + geom_area() + ggtitle("area")
p + geom_path() + ggtitle("path")
p + geom_polygon() + ggtitle("polygon")