facet_wrap()
將一維麵板序列包裝為二維麵板。這通常比 facet_grid()
更好地利用屏幕空間,因為大多數顯示器大致呈矩形。
用法
facet_wrap(
facets,
nrow = NULL,
ncol = NULL,
scales = "fixed",
shrink = TRUE,
labeller = "label_value",
as.table = TRUE,
switch = deprecated(),
drop = TRUE,
dir = "h",
strip.position = "top"
)
參數
- facets
-
由
vars()
引用並在行或列維度上定義分麵組的一組變量或表達式。可以命名變量(名稱傳遞給labeller
)。為了與經典接口兼容,也可以是公式或字符向量。使用單邊公式
~a + b
或字符向量c("a", "b")
。 - nrow, ncol
-
行數和列數。
- scales
-
比例應該是固定的(
"fixed"
,默認值)、自由的("free"
)還是一維自由的("free_x"
、"free_y"
)? - 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
,則將顯示所有因子水平,無論它們是否出現在數據中。 - dir
-
方向:默認為
"h"
表示水平方向,或"v"
表示垂直方向。 - strip.position
-
默認情況下,標簽顯示在圖的頂部。使用
strip.position
,可以通過設置strip.position = c("top", "bottom", "left", "right")
將標簽放置在四個側麵的任意一側
例子
p <- ggplot(mpg, aes(displ, hwy)) + geom_point()
# Use vars() to supply faceting variables:
p + facet_wrap(vars(class))
# Control the number of rows and columns with nrow and ncol
p + facet_wrap(vars(class), nrow = 4)
# \donttest{
# You can facet by multiple variables
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(vars(cyl, drv))
# Use the `labeller` option to control how labels are printed:
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(vars(cyl, drv), labeller = "label_both")
# To change the order in which the panels appear, change the levels
# of the underlying factor.
mpg$class2 <- reorder(mpg$class, mpg$displ)
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(vars(class2))
# By default, the same scales are used for all panels. You can allow
# scales to vary across the panels with the `scales` argument.
# Free scales make it easier to see patterns within each panel, but
# harder to compare across panels.
ggplot(mpg, aes(displ, hwy)) +
geom_point() +
facet_wrap(vars(class), scales = "free")
# To repeat the same data in every panel, simply construct a data frame
# that does not contain the faceting variable.
ggplot(mpg, aes(displ, hwy)) +
geom_point(data = transform(mpg, class = NULL), colour = "grey85") +
geom_point() +
facet_wrap(vars(class))
# Use `strip.position` to display the facet labels at the side of your
# choice. Setting it to `bottom` makes it act as a subtitle for the axis.
# This is typically used with free scales and a theme without boxes around
# strip labels.
ggplot(economics_long, aes(date, value)) +
geom_line() +
facet_wrap(vars(variable), scales = "free_y", nrow = 2, strip.position = "top") +
theme(strip.background = element_blank(), strip.placement = "outside")
# }
相關用法
- R ggplot2 facet_grid 將麵板布置在網格中
- 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等大神的英文原創作品 Wrap a 1d ribbon of panels into 2d。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。