ggplot2作图之分面操作
在上一篇文章中,以量化的形式探索连续型数据的几个简单统计量,本文将使用ggplot2的分面功能探索数据。分面是一个强大有力的工具,可以通过分面图快速地分析出数据各子集模式的异同。
有关分面处理的几个例子:
一、散点图
library(ggplot2)
p1 <- ggplot(data = iris, mapping = aes(x = Petal.Length, y = Petal.Width))
#不作任何处理的散点图
p1 + geom_point()
p1 + geom_point() + facet_grid(.~Species)
p1 + geom_point() + facet_grid(Species~.)
#也可以实现多行对列的分面,一般将因子水平数目最大的变量按列排放
p2 <- ggplot(data = diamonds, mapping = aes(x = carat, y = price))
p2 + geom_point() + facet_grid(cut~color)
p3 <- ggplot(data = diamonds, mapping = aes(x = carat, y = ..density..))
p3 + geom_histogram(binwidth = 0.1) + facet_grid(cut~.)
还可以为分面图再添加一项边际图,实现功能只需设置参数margins=TRUE。
p4 <- ggplot(data = diamonds, mapping = aes(x = carat, y = price))
p4 + geom_point() + facet_grid(cut~color, margins=TRUE)
p5 <- ggplot(data = diamonds, mapping = aes(x = carat, y = ..density..))
p5 + geom_histogram(binwidth = 0.1) + facet_grid(cut~. , margins=TRUE)
在数据探索过程中,分组变量往往更能体现组别之间的差异,如果不考虑分组变量,而笼统的探索、分析数据,结果可能会造成偏误。分面或分组处理将是一个很好的选择。