facet_grid()
形成由行和列分麵變量定義的麵板矩陣。當您有兩個離散變量並且數據中存在變量的所有組合時,它最有用。如果您隻有一個具有多個級別的變量,請嘗試 facet_wrap()
。
用法
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 = deprecated()
)
參數
- rows, cols
-
由
vars()
引用並在行或列維度上定義分麵組的一組變量或表達式。可以命名變量(名稱傳遞給labeller
)。為了與經典接口兼容,
rows
也可以是左軸(表格顯示的)行和右軸(表格顯示的)列的公式;公式中的點用於指示此維度(行或列)上不應有分麵。 - scales
-
比例是否在所有方麵共享(默認值
"fixed"
),還是在行 ("free_x"
)、列 ("free_y"
) 或行和列 ("free"
) 之間變化? - space
-
如果是
"fixed"
,默認情況下,所有麵板都具有相同的大小。如果"free_y"
,它們的高度將與 y 刻度的長度成正比;如果"free_x"
,它們的寬度將與x刻度的長度成正比;或者如果"free"
高度和寬度都會變化。除非適當的比例也發生變化,否則此設置不會產生任何影響。 - shrink
-
如果
TRUE
,將縮小比例以適應統計數據的輸出,而不是原始數據。如果是FALSE
,則為統計匯總前的原始數據範圍。 - labeller
-
一種函數,它采用一個標簽數據幀並返回字符向量列表或數據幀。每個輸入列對應一個因子。因此,將有多個
vars(cyl, am)
。每個輸出列在條帶標簽中顯示為單獨的一行。此函數應繼承自 "labeller" S3 類,以便與labeller()
兼容。您可以對不同類型的標簽使用不同的標簽函數,例如使用label_parsed()
格式化構麵標簽。默認情況下使用label_value()
,檢查它以獲取更多詳細信息和指向其他選項的指針。 - as.table
-
如果是
TRUE
(默認值),則各個方麵的布局就像表格一樣,最高值位於右下角。如果是FALSE
,則各個方麵的布局就像繪圖一樣,最高值位於右上角。 - switch
-
默認情況下,標簽顯示在圖的頂部和右側。如果
"x"
,頂部標簽將顯示在底部。如果是"y"
,右側標簽將顯示在左側。也可以設置為"both"
。 - drop
-
如果默認為
TRUE
,則數據中未使用的所有因子水平將自動刪除。如果是FALSE
,則將顯示所有因子水平,無論它們是否出現在數據中。 - margins
-
邏輯值或字符向量。邊距是附加的構麵,其中包含構麵變量的每個可能值的所有數據。如果
FALSE
,則不包含其他方麵(默認)。如果TRUE
,則所有分麵變量都包含邊距。如果指定為字符向量,則它是要為其創建邊距的變量的名稱。 - facets
例子
p <- ggplot(mpg, aes(displ, cty)) + geom_point()
# Use vars() to supply variables from the dataset:
p + facet_grid(rows = vars(drv))
p + facet_grid(cols = vars(cyl))
p + facet_grid(vars(drv), vars(cyl))
# To change plot order of facet grid,
# change the order of variable levels with factor()
# If you combine a facetted dataset with a dataset that lacks those
# faceting variables, the data will be repeated across the missing
# combinations:
df <- data.frame(displ = mean(mpg$displ), cty = mean(mpg$cty))
p +
facet_grid(cols = vars(cyl)) +
geom_point(data = df, colour = "red", size = 2)
# Free scales -------------------------------------------------------
# You can also choose whether the scales should be constant
# across all panels (the default), or whether they should be allowed
# to vary
mt <- ggplot(mtcars, aes(mpg, wt, colour = factor(cyl))) +
geom_point()
mt + facet_grid(vars(cyl), scales = "free")
# If scales and space are free, then the mapping between position
# and values in the data will be the same across all panels. This
# is particularly useful for categorical axes
ggplot(mpg, aes(drv, model)) +
geom_point() +
facet_grid(manufacturer ~ ., scales = "free", space = "free") +
theme(strip.text.y = element_text(angle = 0))
# Margins ----------------------------------------------------------
# \donttest{
# Margins can be specified logically (all yes or all no) or for specific
# variables as (character) variable names
mg <- ggplot(mtcars, aes(x = mpg, y = wt)) + geom_point()
mg + facet_grid(vs + am ~ gear, margins = TRUE)
mg + facet_grid(vs + am ~ gear, margins = "am")
# when margins are made over "vs", since the facets for "am" vary
# within the values of "vs", the marginal facet for "vs" is also
# a margin over "am".
mg + facet_grid(vs + am ~ gear, margins = "vs")
# }
相關用法
- R ggplot2 facet_wrap 將 1d 麵板帶包成 2d 麵板
- R ggplot2 fortify.lm 使用模型擬合統計數據補充擬合到線性模型的數據。
- R ggplot2 annotation_logticks 注釋:記錄刻度線
- R ggplot2 vars 引用分麵變量
- R ggplot2 position_stack 將重疊的對象堆疊在一起
- R ggplot2 geom_qq 分位數-分位數圖
- R ggplot2 geom_spoke 由位置、方向和距離參數化的線段
- R ggplot2 geom_quantile 分位數回歸
- R ggplot2 geom_text 文本
- R ggplot2 get_alt_text 從繪圖中提取替代文本
- R ggplot2 annotation_custom 注釋:自定義grob
- R ggplot2 geom_ribbon 函數區和麵積圖
- R ggplot2 stat_ellipse 計算法行數據橢圓
- R ggplot2 resolution 計算數值向量的“分辨率”
- R ggplot2 geom_boxplot 盒須圖(Tukey 風格)
- R ggplot2 lims 設置規模限製
- R ggplot2 geom_hex 二維箱計數的六邊形熱圖
- R ggplot2 scale_gradient 漸變色階
- R ggplot2 scale_shape 形狀比例,又稱字形
- R ggplot2 geom_bar 條形圖
- R ggplot2 draw_key 圖例的關鍵字形
- R ggplot2 annotate 創建注釋層
- R ggplot2 label_bquote 帶有數學表達式的標簽
- R ggplot2 annotation_map 注釋:Map
- R ggplot2 scale_viridis 來自 viridisLite 的 Viridis 色標
注:本文由純淨天空篩選整理自Hadley Wickham等大神的英文原創作品 Lay out panels in a grid。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。