Scales, Axes and Legends
6.1 简介
标度(scale)是将数据的取值映射到图形空间,例如颜色、大小和形状表示不同的数值。展现标度的常见做法是绘制图例和坐标轴。
每一种标度都是从数据空间的某个区域(标度的定义域)到图层属性空间的某个值域(标度的值域)的一个函数。标度的定义域赌赢者提供给这个标度的变量的取值范围。
定义域(变量)可以是连续型、离散型、有序或者无序型。值域则包括我们可以感知的图形属性(颜色、形状、大小、线条等等)
执行标度的过程分为
1. 变换
2. 训练
3. 映射
标度可以粗略地分为四个类别:
1. 位置标度
2. 颜色标度
3. 手动离散型标度
4. 同一型标度
6.2 修改标度
实际上每个图片生成的命令都有默认的标度,比如这个简单的代码:
ggplot(mpg, aes(displ, hwy)) +
geom_point(aes(colour = class))
实际上它背后的标度是这样的:
ggplot(mpg, aes(displ, hwy)) +
geom_point(aes(colour = class)) +
scale_x_continuous() +
scale_y_continuous() +
scale_colour_discrete()
如果你想修改x轴y轴的名字:
ggplot(mpg, aes(displ, hwy)) +
geom_point(aes(colour = class)) +
scale_x_continuous("A really awesome x axis ") +
scale_y_continuous("An amazingly great y axis ")
如果你想修改颜色:
ggplot(mpg, aes(displ, hwy)) +
geom_point(aes(colour = class)) +
scale_x_sqrt() +
scale_colour_brewer()
从上面几个例子可以看出来,scale
的“命名方案”是在后面添加下划线_
,然后添加要修改的相应对象和属性,下表有一个简单的总结
(截图来自《ggplot2(第一版)》)
6.3 引导元素:图例和坐标轴
(Guide:Legends and Axes)
什么是引导元素(guide)
引导元素:生成一个允许读图者从图形属性空间到数据空间进行反向映射的引导元素,从而从图中读取数值
对于位置型图形,引导元素是坐标轴(Axis)
对于其他图形,引导元素主要是图例(Legend)
6.3.1 标度名称
下面我们创建一个简单的数据框
df <- data.frame(x = 1:2, y = 1, z = "a")
两种修改横坐标名称的代码,首先是简单的命名为"X axis"
:
p <- ggplot(df, aes(x, y)) + geom_point()
p + scale_x_continuous("X axis")
另外一种使用了quote()
:
p + scale_x_continuous(quote(a + mathematical ˆ expression))
## `^`后面的字符转换为上标形式
当修改坐标轴名称、图例名称时,有一个相对简单的方法,就是使用xlab()
,ylab()
,labs()
三种函数:
例如
xlab()
,ylab()
可以用来更改x轴和y轴的名称:
df <- data.frame(x = 1:2, y = 1, z = "a")
p <- ggplot(df, aes(x, y)) + geom_point(aes(colour = z