示例資料:
dat <- tibble(River = c(rep(letters[1:6],27))) %>%
mutate(cohort=rep(seq(2007,2015,1),18),
mu = c(rnorm(54,300,25),
rnorm(54,0.5,0.15),
rnorm(54,-0.75,0.1)),
param = c(rep('var1',54),
rep('var2',54),
rep('var3',54))) %>%
group_by(param) %>% mutate(
upr = mu 2*sd(mu),
lwr = mu-2*sd(mu))
資料不完全是我想要的,但對于這個問題來說應該無關緊要。我正在嘗試使用來自ggplot2or的 facet 函式制作一個 6x3 繪圖ggpubr,我發現facetfromggpubr可以制作我想要的繪圖,但不允許使用scales引數釋放 y 尺度,這與具有相同的行為facet_grid。因此,我可以facet_wrap根據自由 y 軸刻度利用并實作所需的結果,并且可以將標簽移動到頂部或右側,但我無法找到僅標記列和行并分隔標簽的方法,以便我param的標記在列上,River是標記在行上。
簡而言之,我想要這個情節:
p1 <- ggplot(data = dat)
geom_point(aes(x=cohort, y=mu))
geom_errorbar(aes(x=cohort, ymin=lwr, ymax=upr),
width=0)
facet(p1,
facet.by = c('River', 'param'),
scales = 'free')
與 y 尺度免費...像這樣:
p1
facet_wrap(nrow = 6, ncol = 3,
vars(factor(River),param),
scales = 'free',
strip.position = c('right'))
uj5u.com熱心網友回復:
該ggh4x::facet_grid2()功能允許在網格布局中的列或行內獨立縮放。免責宣告:我是 ggh4x 的作者。
library(tidyverse)
dat <- tibble(River = c(rep(letters[1:6],27))) %>%
mutate(cohort=rep(seq(2007,2015,1),18),
mu = c(rnorm(54,300,25),
rnorm(54,0.5,0.15),
rnorm(54,-0.75,0.1)),
param = c(rep('var1',54),
rep('var2',54),
rep('var3',54))) %>%
group_by(param) %>% mutate(
upr = mu 2*sd(mu),
lwr = mu-2*sd(mu))
p1 <- ggplot(data = dat)
geom_point(aes(x=cohort, y=mu))
geom_errorbar(aes(x=cohort, ymin=lwr, ymax=upr),
width=0)
p1
ggh4x::facet_grid2(factor(River) ~ param,
scales = 'free', independent = "y")

由reprex 包于 2022-01-13 創建(v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/416802.html
標籤:
上一篇:如何將dateRangeInput集成到兩個帶有過濾功能的分層ggplot?
下一篇:根據另一個變數為繪圖創建軸
