據我了解, facet_grid 的一大缺點是您無法指定面板組的軸限制。因此,我創建了四個圖表,我添加了我想要的軸限制,并使用 gridExtra 包中的 grid.arrange 手動將它們添加在一起。但是,我希望這些圖與我使用 face_grid 創建的其他圖相匹配。我認為在 facet_grid 中自動生成的條形標簽在條帶下的 theme() 中控制。相關功能,但我不知道如何為我的個人地塊“重新創建”這些條形標簽。有人知道嗎?
這是我用 grid.arrange() 創建的圖表

這是我用 facet.grid() 創建的圖表

我想要 grid.arrange() 生成圖中 facet.grid() 的灰色陰影標簽。
謝謝!
uj5u.com熱心網友回復:
好吧,一個簡單的方法是通過添加facet_grid. 這樣做會自動將條形文本框添加到每個子圖中。在下面的代碼中,我使用了一個自定義函式,并facet_grid使用if-else.
使用一些虛假的示例資料并使用 ofpatchwork而不是grid.arrange:
df <- data.frame(
row = c("K", "r"),
col = rep(c("Female", "Male"), each = 2),
x = rep(1:2, each = 4),
y = rep(1:2, each = 4)
)
# Split by facet row and col
df_split <- split(df, ~row col)
# Order
df_split <- df_split[c("K.Female", "K.Male", "r.Female", "r.Male")]
plot_fun <- function(x, y) {
facet_layer <- if (grepl("Female$", y) && !grepl("^r", y))
facet_grid(.~col)
else if (grepl("Male$", y) && !grepl("^r", y))
facet_grid(row~col)
else if (grepl("Male$", y) && grepl("^r", y))
facet_grid(row~.)
ggplot(x, aes(x, y))
geom_point()
facet_layer
}
library(purrr)
library(ggplot2)
library(patchwork)
purrr::imap(df_split, plot_fun) %>%
wrap_plots()

轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/450750.html
上一篇:在R中創建頻率多邊形疊加
