ggplot2画图入门系列之一:导论
1 什么是ggplot2
ggplot2是用于画图的R语言扩展包,其理念根植于《Grammar of Graphics》一书。它将画图视为一种映射,即从数学空间映射到图形元素空间。譬喻将差异的数值映射到差异的色彩或透明度。该画图包的特点在于并不去界说详细的图形(如直方图,散点图),而是界说各类底层组件(如线条、方块)来合成巨大的图形,这使它能以很是简捷的函数构建种种图形,并且默认条件下的画图品质就能到达出书要求。
2 与lattice包的较量
ggplot2和lattice都属于高级的格点画图包,初学R语言的伴侣大概会在二者选择上有所迷惑。从各自特点上来看,lattice入门较容易,作图速度较快,图形函数种类较多,好比它可以举办三维画图,而ggplot2就不能。ggplot2需要一段时间的进修,但当你跨过这个门槛之后,就能体会到它的简捷和优雅,并且ggplot2可以通过底层组件结构前所未有的图形,你所受到的限制只是你的想象力。
发起两种画图包都可以研究一下。假如时间告急,需要在一两天之内为论文做一张图,那么推荐用lattice,假如时间丰裕,推荐进修ggplot2。
3 根基观念
4 一个例子
下面用ggplot2包内带的汽车测试数据(mpg)来举个例子,用到的三个变量别离是动员机容量(displ)、高速公路上的每加仑行驶里数(hwy)、汽缸数目(cyl)。首先加载ggplot2包,然后用ggplot界说第一层即数据来历。个中aes参数很是要害,它将displ映射到X轴,将hwy映射到Y轴,将cyl变为分类数据后映射为差异的颜色。然后利用+号添加了两个新的图层,第二层是加上了散点,第三层是加上了loess滑腻曲线。
library(ggplot2)
p <- ggplot(data=mpg,aes(x=displ,y=hwy,colour=factor(cyl)))
p + geom_point() + geom_smooth()
上图是对几种差异汽缸的数据别离滑腻,假如需要对整体数据举办滑腻,可将colour参数配置在散点图层内而非第一层,这样第三层的滑腻图形就不会受到colour参数的影响。
p <- ggplot(mpg,aes(x=displ,y=hwy))
p + geom_point(aes(colour=factor(cyl))) + geom_smooth()