ggplot2(10) 减少重复性工作
10.1 简介
灵活性和鲁棒性的敌人是:重复!
10.2 迭代
last_plot()用于获取最后一次绘制或修改的图形。
10.3 绘图模板
gradient_rb <- scale_colour_gradient(low = "red", high = "blue") qplot(cty, hwy, data = mpg, colour = displ) + gradient_rb qplot(bodywt, brainwt, data = msleep, colour = awake, log = "xy") + gradient_rb
ggplot2图形中的每一个组件都是一个对象,可以被创建、存储并独立应用于某个图形中。
另外,ggplot2中的组件也可以存储为list格式的列表。想某个图形中添加组件列表和将其中的组件按顺序逐个添加是一样的效果。
xquiet <- scale_x_continuous("", breaks = NULL) yquiet <- scale_y_continuous("", breaks = NULL) quiet <- list(xquiet, yquiet) qplot(mpg, wt, data = mtcars) + quiet qplot(displ, cty, data = mpg) + quiet
类似的,创建一个改变图形默认设置的函数也可以,下例创建了一个在图形中添加线性模型的函数。
geom_lm <- function(formula = y ~ x) { geom_smooth(formula = formula, se = FALSE, method = "lm") } qplot(mpg, wt, data = mtcars) + geom_lm() library(splines) qplot(mpg, wt, data = mtcars) + geom_lm(y ~ ns(x, 3))