码迷,mamicode.com
首页 > 其他好文 > 详细

R数据可视化--ggplot2定位之分面

时间:2017-05-22 11:05:27      阅读:1010      评论:0      收藏:0      [点我收藏+]

标签:data   isp   aes   添加   驱动   占用   img   分布   网格   

分面也就是切割数据生成一系列小联号图,每个小图表示不同的数据子集。本篇将讨论如何较好的微调分面,特别是与位置标度相近的方法。

在qplot中可以选择分面系统。2维分面使用face_grid,1维分面使用face_wrap。

分面通常会占用大量空间,因此本篇使用mpg数据集的子集来进行展示。

> library(ggplot2)
> mpg2 <- subset(mpg,cyl != 5 &drv %in% c("4","f"))

  1.网格分面

网格分面在2维网格中展示图形,输入分面表达式时,你需要设定哪些变量作为分面绘图的行,哪些变量作为列,规则如下:

  • 不进行分面,我们将得到一个单独的面板
> qplot(cty,hwy,data=mpg2) + facet_null()

  技术分享

  • 一行多列 :". ~ a"

电脑屏幕通常较宽,因此这个方向最合适数据的展示。另外,因为坐标轴相同,这个方向也有助于y位置的比较。

 qplot(cty,hwy,data=mpg2) + facet_grid(. ~ cyl)

  技术分享

  • 一列多行:"b ~ ."

横坐标轴相同,利于x位置的比较,尤其是对数据分布的比较。

> qplot(cty,data=mpg2,geom="histogram",binwidth=2) + facet_grid(cyl ~ .)

  技术分享

  • 多行多列:"a ~ b"

我们通常都将因子水平数目最大的变量按列排放,这样可以充分利用屏幕的宽高比。

> qplot(cty,hwy,data=mpg2) + facet_grid(drv ~ cyl)

  技术分享

从以上图形我们可以看出,变量在某行或者某列一起出现时,图形只会展示数据中出现的变量组合。而变量在行和列都出现时,图形将展示所有变量组合,包括原始数据中都没有出现的组合。不过这也可能会导致出现空白面板。

边际图:可以参考margins来绘制边际图。设定margins=TRUE可展示所有的边际图,或者margins=c("sex","age"),列出你要展示的边际图的变量名称。也可以使用grand_row或grand_col来生成行或列的边际图。

边际图的分组方式与其他面板中分组方式相同:默认使用图层中所有分类变量的交互作用。下面第三张图表示对每个驱动类型添加彩色平滑线。

> p <- qplot(displ,hwy,data=mpg2) + geom_smooth(method = "lm",se=F)
> p + facet_grid(cyl ~ drv)
> p + facet_grid(cyl ~ drv,margins = T)

> qplot(displ,hwy,data=mpg2) + geom_smooth(aes(colour=drv),method="lm",se=F)+
+ facet_grid(cyl ~ drv,margins=T)

  技术分享技术分享技术分享

 

R数据可视化--ggplot2定位之分面

标签:data   isp   aes   添加   驱动   占用   img   分布   网格   

原文地址:http://www.cnblogs.com/lizhilei-123/p/6888263.html

(0)
(2)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!