Themes
8.1 Introduction
第八章讲的是ggplot2的主题设置,通过它你可以对数据之外的图形外观进行控制。第一版的中文版的把这一章的章节名翻译为“精雕细琢”。
控制主题设置主要有以下四个方面:
- 主题元素,指的是非数据元素,
plot.title
控制标题的外观,axis.ticks.x
控制x轴的刻度,legend.key.height
控制图例中按键的高度。 - 元素函数,描述元素的视觉属性,例如
element text()
可以设置字体大小、颜色和文本外观如plot.title
。 theme()
函数,用来覆盖默认的主题元素,如theme(plot.title = element text(colour = "red"))
- 完整主题,如
theme_grey()
,用来把所有主题元素协调一致。
举例,如下图表,
(变量cty和hwy:城市和高速公路行驶记录每加仑行驶的英里数)
base <- ggplot(mpg, aes(cty, hwy, color = factor(cyl))) +
geom_jitter() +
geom_abline(colour = "grey50", size = 2)
base
在这个图的基础上,我们想改进轴和图例的标签;添加标题;调整颜色等,
通过第六章标度相关的知识我们可以添加标签、修改标度:
labelled <- base +
labs(
x = "City mileage/gallon",
y = "Highway mileage/gallon",
colour = "Cylinders",
title = "Highway and city mileage are highly correlated"
) +
scale_colour_brewer(type = "seq", palette = "Spectral")
labelled
下一步,如果你想改变整个风格,修改标度就不能满足了,就要用的这一章的内容
如修改背景颜色、图例位置、移除次要网格线、改变字体大小
styled <- labelled +
theme_bw() +
theme(
plot.title = element_text(face = "bold", size = 12),
legend.background = element_rect(fill = "white", size = 4, colour = "white"),
legend.justification = c(0, 1),
legend.position = c(0, 1),
axis.ticks = element_line(colour = "grey70", size = 0.2),
panel.grid.major = element_line(colour = "grey70", size