1.分面

分面是指在一个页面上自动摆放多幅图形的技巧,也就是说可以让不同分类的图同时展示在一张图上,这样方便于数据之间的的比较。ggplot2提供了网格型(facet_grid)和封装型(facet_wrap)两种分面类型,下面就针对不同的两种分面进行介绍。

1.1 网格分面(facet_grid)

如果我们对图像什么也不改变,或者加上facet_null()则不会出现分面效果(如下所示)。

library("ggplot2")
mpg2<-subset(mpg,cyl!=5&drv %in% c("4","f"))
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=TRUE"

下面代码添加了一个边际(类似于列联表的边际和),并对每个驱动轮类型添加了彩色平滑线。

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

1.2 封装分面(facet_wrap)

下面代码展示了每十年电影平均评分的分布情况,利用封装分面的规则按照年代进行分类绘图。

library("ggplot2")
library("plyr")
movies$decade<-round_any(movies$year,10,floor)
qplot(rating,..density..,data = subset(movies,decade>1890),geom="histogram",binwidth=0.5)+facet_wrap(~decade,ncol=6)

分面变量的设置格式为~a+b+c,facet_wrap尽可能摆成方形,也可以通过设置ncol,nrow来改变。

1.3 标度控制

可以通过调整参数scales来控制面板的位置标度是固定的还是变化的。

scales="fixed':x和y的标度在所有面板中都相同。

scales="free":x和y的标度在每个面板都可以变化。

scales="free_x":x可变,y固定。

scales='free_y":y可变,x固定。

Example:

library("ggplot2")
p<-qplot(cty,hwy,data=mpg)
p+facet_wrap(~cyl)
p+facet_wrap(~cyl,scales = "free")

使用网格分面(facet_grid)时还有一个额外的限制:同列的面板必须有相同的x标度,同行的面板必须有相同的y标度。这是因为网格分面中,每列都公用一个x轴,每行共用一个y轴。

ggplot2:分面的介绍的更多相关文章

  1. ggplot2 分面相关设置(facet)

    分面设置在ggplot2应该也是要经常用到的一项画图内容,在数据对比以及分类显示上有着极为重要的作用, 下面是两个经常要用到的分面函数. facet_wrap(facets, nrow = NULL, ...

  2. [转]ggplot2用法简单介绍

    简介 ggplot2包是基于Wilkinson在<Grammar of Graphics>一书中所提出的图形语法的具体实现, 这套图形语法把绘图过程归纳为data, transformat ...

  3. Mysql分表和分区的区别、分库分表介绍与区别

    分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这 ...

  4. Mysql分表和分区的区别、分库分表介绍与区别(转)

    分表和分区的区别: 一,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看:mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这 ...

  5. 3星|《腾讯产业森林:AI时代的创业密码》:后半部分是较详细的创业指南,前面泛泛介绍腾讯、AI

    腾讯产业森林:AI时代的创业密码 前半部分泛泛介绍腾讯对创业者的支持,腾讯支持的创业项目的案例.AI的一些基本介绍,后半部分是比较详细的写给创业者的各阶段行动与选择的指南. 总体评价3星,有一些参考价 ...

  6. ggplot2包--R可视化

    1.ggplot2发展历程 ggplot2是Hadley在爱荷华州立大学博士期间的作品,也是他博士论文的主题之一,实际上ggplot2还有个前身ggplot,但后来废弃了,某种程度上这也是Hadley ...

  7. R----ggplot2包介绍学习

    分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将绘图与数据分离,数据相关的绘图与数据无 ...

  8. R语言 ggplot2包

    R语言  ggplot2包的学习   分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将 ...

  9. R----ggplot2包介绍学习--转载

    https://www.cnblogs.com/nxld/p/6059603.html 分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplo ...

随机推荐

  1. mysql view视图的简单使用....

    为什么使用视图 1.查询性能提高. 2.安全 3.有灵活性的功能需求后,需要改动表的结构而导致工作量比较大.那么可以使用虚拟表的形式达到少修改的效果 4.复杂的查询需求.可以进行问题分解,然后将创建多 ...

  2. JAVA: List用法

    1.List中可以添加任何对象,包括自己定义的新的类. class Person{.....}上面定义了一个Person类,下面看好如何使用ListPerson p1=new Person();Per ...

  3. Triangle Problems

    Triangle Problem songxiuhuan 宋修寰 Import the Junit and eclemma Choose the project and right click, ch ...

  4. Binary Tree Paths leetcode

    Given a binary tree, return all root-to-leaf paths. For example, given the following binary tree: 1 ...

  5. 1712: [Usaco2007 China]Summing Sums 加密

    1712: [Usaco2007 China]Summing Sums 加密 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 338  Solved: 12 ...

  6. checkSelfPermission 找不到 Android 动态权限问题

    checkSelfPermission 找不到 Android 动态权限问题  最近写了一个Demo,以前好好地.后来手机更新了新系统以后,不能用总是闪退.而且我的小伙伴的是android 7.0系统 ...

  7. SSH登录与增删改查demo详解+源代码

    点击下载,测试绝对可用SSH整合框架登录加增删改查demo 下载地址:http://download.csdn.net/detail/qq_33599520/9784679   一.框架概述 spri ...

  8. iOS性能之WebP

    当今互联网,无论网页还是APP,流量占用最大的,多数都是因为图片,越是良好的用户体验,对图片的依赖度越高.但是图片是一把双刃剑,带来了用户体验,吸引了用户注意,却影响了性能,因为网络请求时间会相对比较 ...

  9. yii2.0使用之缓存

    1.片段缓存(针对于视图中的某部分进行缓存): <?php 设置有效时间 $time=15; 缓存依赖,存入文件.当文件内容发生改变是才会刷新新内容 $dependecy=[ 'class'=& ...

  10. java根据HashMap中的值将其元素排序

    思路:HashMap或Map本身没有排序功能,若要进行较轻松的排序,可利用ArrayList中的sort方法 例子: import java.util.ArrayList; import java.u ...