【R语言】高维数据可视化| ggplot2中会“分身术”的facet_wrap()与facet_grid()姐妹花

时间:2022-07-22
本文章向大家介绍【R语言】高维数据可视化| ggplot2中会“分身术”的facet_wrap()与facet_grid()姐妹花,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

facet_grid()形成由行和列面化变量定义的面板矩阵。当有两个离散变量,并且这些变量的所有组合存在于数据中时,它是最有用的。如果只有一个具有多个级别的变量,请尝试facet_wrap()。

facet_wrap()将一维面板序列包装成2d。这通常比facet_grid()更好地利用了屏幕空间,而且显示基本上是矩形的。

分面图是根据数据类别按照行或者列,或者矩阵分面的方式将散点图,柱形图等基础图标展示四到五维的数据结构。

01

用法

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,facets = NULL)

facet_wrap():

facet_wrap(facets,nrow = NULL,ncol = NULL,scales = "fixed",shrink = TRUE,labeller = "label_value",as.table = TRUE,switch = NULL,drop = TRUE,dir = "h",strip.position = "top")

rows:一组变量或表达式,由vars()引用并定义面,比如rows=vars(x)是指将变量x作为维度进行分面,并且可以使用多个分类变量。

cols:表示列维度上的组。可以对变量进行命名(将名称传递给标签器)。比如cols=vars(x)表示将变量x作为维度进行列分面。

scales:表示分面后坐标轴的尺度按照什么规则进行适应。(默认为"fixed"),按行适应(“free_x”)、按照列(“free_y”)适应,或者跨行和列(“free”)。

space:如果“fixed”,默认,所有面板有相同的大小。如果"free_y"它们的高度将与y刻度的长度成比例;如果“free_x”,它们的宽度将与x刻度的长度成比例;或者“free”时,高度和宽度都会发生变化。除非适当的刻度也发生变化,否则此设置没有效果。

Shrink:如果为真,将缩小规模以适应统计输出,而不是原始数据。如果为假,将范围内的原始数据进行统计汇总。

labeler:默认情况下使用label_value()。

as.table:如果为真,则默认情况下,facet的布局类似于在右下方具有最高值的表。如果为假,那么这些面就像一个在右上角有最高值的情节一样被布置。

switch:默认情况下,标签显示在绘图的顶部和右侧。如果“x”,顶部的标签将显示在底部。如果是“y”,则右侧的标签将显示在左侧。也可以设置为“both”。

facets:此参数不建议使用,请使用行rows和cols代替.

dir: 方向:“h”代表默认水平方向,“v”代表默认垂直方向。

strip.position:默认情况下,标签显示在图形的顶部。使用地带。位置通过设置条带,可以将标签放置在四个边的任意一边。position = c("top", "bottom", "left", "right")。

02

按列分面

m<-ggplot(mpg,aes(cty,hwy,fill=class,size=cyl))+geom_point(shape=21,colour="black",stroke=0.25,alpha=0.8)
m+facet_grid(.~drv)

facet_grid()按照列分面

03

按行分面

m+facet_grid(cyl~.)

facet_grid()按行分面

04

按两个变量的行列矩阵排列

m+facet_grid(vars(drv), vars(cyl))

05

facet_grid()调节X轴的取值范围

m+facet_grid(vars(drv), vars(cyl),scales="free_x")

facet_grid()按照x轴调节取值范围

06

facet_grid()调节y轴的取值范围

facet_grid()按照y轴调节取值范围

07

facet_grid()调节X和Y轴的取值范围

m+facet_grid(vars(drv), vars(cyl),scales="free ")

facet_grid()按照x轴和y轴调节取值范围

08

facet_wrap()的矩阵排列

m+facet_wrap(~cyl)