跳转至

Facet grid()

在R语言中,ggplot2包中的facet_grid()函数用于将数据按照指定的变量在网格中分组,并在每个小面板中绘制对应的图形。

函数定义

facet_grid(rows = NULL, cols = NULL, scales = "fixed", space = "fixed", shrink = TRUE, labeller = "label_value", as.table = TRUE, switch = NULL, drop = TRUE, margins = FALSE, drop.unused.levels = TRUE)

参数: - rows:用于在行方向上分组的变量名或公式。

  • cols:用于在列方向上分组的变量名或公式。

rows = vars(column) cols = vars(column) vars()根据指定字段中数据的类别进行分组!

  • scales刻度的类型,约束在同一尺度上方便比较。默认为"fixed",表示每个子图具有独立的坐标轴;如果设置为"free",则子图之间的坐标轴可以不同

  • space:表示子图之间的间距。默认为"fixed",表示子图之间的间距固定;如果设置为"free",则子图之间的间距可以不同。

  • shrink:表示是否根据子图的相对大小自动调整每个子图的大小。默认为TRUE

  • labeller:控制小面板标签的显示方式,可以是字符向量、函数或标签规范。

  • as.table:布尔值,指示是否以表格形式排列小面板。

  • switch:在行和列之间切换变量的顺序。

  • drop:布尔值,指示是否删除没有数据的小面板。

  • margins:布尔值,指示是否添加边际小面板。

  • drop.unused.levels:布尔值,指示是否删除未使用的水平。

library(ggplot2)

# 创建数据集
data <- data.frame(
  x = rep(1:4, 3),
  y = rep(c("A", "B", "C"), each = 4),
  value = rnorm(12)
)

# 创建基本图形
p <- ggplot(data, aes(x, value)) +
  geom_point() +
  labs(title = "My Plot", x = "X", y = "Value")

# 根据y变量分组并绘制网格图,或者第三个变量z
p + facet_grid(rows = vars(y)) 

Pasted image 20231005164810

在上述示例中,我们首先加载ggplot2包,并创建了一个简单的数据集 data,包含了x和y的值以及一个随机生成的值。

然后,我们使用ggplot()函数创建了一个基本图形 p,并使用geom_point()添加了散点图。

接下来,我们使用labs()函数设置图形的标题和轴标签。

最后,我们调用facet_grid()函数来进行数据分组并绘制网格图。在facet_grid()函数中,我们使用了rows参数来指定按照y变量在行方向上进行分组。这将为每个独特的y值创建一个小面板,并在每个小面板中绘制对应的图形。

facet_grid(vars(drv), vars(cyl))

行、纵一起分

Pasted image 20240108084503

相关于按照多个变量进行分组,但对某个变量分组后没有对应数值,所以为空,没有散点