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))
在上述示例中,我们首先加载ggplot2
包,并创建了一个简单的数据集 data
,包含了x和y的值以及一个随机生成的值。
然后,我们使用ggplot()
函数创建了一个基本图形 p
,并使用geom_point()
添加了散点图。
接下来,我们使用labs()
函数设置图形的标题和轴标签。
最后,我们调用facet_grid()
函数来进行数据分组并绘制网格图。在facet_grid()
函数中,我们使用了rows
参数来指定按照y
变量在行方向上进行分组。这将为每个独特的y
值创建一个小面板,并在每个小面板中绘制对应的图形。
facet_grid(vars(drv), vars(cyl))¶
行、纵一起分
相关于按照多个变量进行分组,但对某个变量分组后没有对应数值,所以为空,没有散点