ggplot2学习笔记10:分面(Facetting)详解

本文深入探讨了ggplot2的分面功能,包括封装分面(Facet wrap)和网格分面(Facet grid)。通过实例解析了如何使用分面在页面上布局多个情节,控制标度的固定与自由,以及如何处理缺失分面变量。此外,还讨论了分面与分组的区别,并展示了如何处理连续变量进行分面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Chapter 7

Positioning



7.1 介绍(Introduction)

这部分讨论Positioning,特别是图层如何在页面上布局,以及坐标系统如何工作。有四个组件控制位置:

  • Position adjustments:调整层中重叠对象的位置;
  • Position scales:控制如何将数据中的值映射到图上的位置;

这部分主要介绍另外两个:

  • Facetting:分面是一种在页面上自动布局多个情节的机制。它将数据分成子集,然后在不同的分面中绘制每个子集;
  • Coordinate systems:控制两个独立的位置标度形成一个二维坐标系,最常见的坐标系是笛卡尔坐标系。

7.2 分面(Facetting)

每个小图都代表不同的数据子集。分面可以快速地分析数据各子集模式的异同。

本节讨论怎样较好微调分面,特别是和位置标度相关的方法。

  • facet_null():默认,无分面,单一图形
  • facet_wrap():封装型,本质上是一维,为节省空间封装成二维
  • facet_grid():网格型,生成一个由两个独立的部分组成的二维面板,面板的行和列可以通过变量来定义

两种绘图系统区别示意图

使用数据集:mpg数据集的一个子集(气缸数cylinders (4, 6, 8),驱动系统drive train (4, f),和6个classes

library(ggplot2)
mpg2 <- subset(mpg, cyl != 5 & drv %in% c("4", "f") & class != "2seater")
mpg2
#> # A tibble: 205 x 11
#>    manufacturer model      displ  year   cyl trans      drv     cty   hwy fl    class  
#>    <chr>        <chr>      <dbl> <int> <int> <chr>      <chr> <int> <int> <chr> <chr>  
#>  1 audi         a4           1.8  1999     4 auto(l5)   f        18    29 p     compact
#>  2 audi         a4           1.8  1999     4 manual(m5) f        21    29 p     compact
#>  3 audi         a4           2    2008     4 manual(m6) f        20    31 p     compact
#>  4 audi         a4           2    2008     4 auto(av)   f        21    30 p     compact
#>  5 audi         a4           2.8  1999     6 auto(l5)   f        16    26 p     compact
#>  6 audi         a4           2.8  1999     6 manual(m5) f        18    26 p     compact
#>  7 audi         a4           3.1  2008     6 auto(av)   f        18    27 p     compact
#>  8 audi         a4 quattro   1.8  1999     4 manual(m5) 4        18    26 p     compact
#>  9 audi         a4 quattro   1.8  1999     4 auto(l5)   4        16    25 p     compact
#> 10 audi         a4 quattro   2    2008     4 manual(m6) 4        20    28 p     compact
#> # ... with 195 more rows

7.2.1 封装分面(Facet wrap)

facet_wrap()函数先生成一个长的面板条块(有任意数目的变量生成),再将它封装在二维中

设置排列的参数:

  • ncolnrow:控制行列数,只需要设置一个;
  • as.table:是否以表格的形式显示布局,有True和False两个选项;
base <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值