查看原文
其他

ggplot2作图之分面操作

2015-12-08 刘顺祥 每天进步一点点2015

在上一篇文章中,以量化的形式探索连续型数据的几个简单统计量,本文将使用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)


在数据探索过程中,分组变量往往更能体现组别之间的差异,如果不考虑分组变量,而笼统的探索、分析数据,结果可能会造成偏误。分面或分组处理将是一个很好的选择。

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存