如何在 R 中使用 ggplot2 自定义 y 轴上的间距?

How do you customise spacing on the y-axis using ggplot2 in R?

提问人:Mark H 提问时间:10/27/2023 最后编辑:Mark H 更新时间:11/23/2023 访问量:14

问:

我想从分层模型创建结果的森林图,以便变量名称显示在 y 轴上,并且分层中每个级别的名称显示在下面(最好从变量名称缩进)。

我有以下示例:

library(tidyverse); theme_set(theme_classic())

# Create example data
data <- data.frame(variable = c(rep("Covariate1",3), rep("Covariate 2",3),
                                rep("Covariate3",3)),
                   posterior = rep(c("GroupA", "GroupB", "GroupC"),3),
                   mu = c(0.25, 0.08, 0.07, 0.27, -0.45, 0.01, 
                          0.37, 0.002, 0.24),
                   colour = rep(c("red","blue","yellow")))

data$est <- paste(data$variable, data$posterior, sep="_")

data
#     variable posterior     mu colour                est
#1  Covariate1    GroupA  0.250    red  Covariate1_GroupA
#2  Covariate1    GroupB  0.080   blue  Covariate1_GroupB
#3  Covariate1    GroupC  0.070 yellow  Covariate1_GroupC
#4 Covariate 2    GroupA  0.270    red Covariate 2_GroupA
#5 Covariate 2    GroupB -0.450   blue Covariate 2_GroupB
#6 Covariate 2    GroupC  0.010 yellow Covariate 2_GroupC
#7  Covariate3    GroupA  0.370    red  Covariate3_GroupA
#8  Covariate3    GroupB  0.002   blue  Covariate3_GroupB
#9  Covariate3    GroupC  0.240 yellow  Covariate3_GroupC


plot1 <- data |>
  ggplot(aes(y = fct_rev(reorder(est, as.numeric(row.names(data)))))) + 
  geom_point(aes(x=mu), shape=16, size=3.5, colour=data$colour) +
  geom_vline(xintercept = 0, linetype="solid", 
             linewidth=0.3, colour="gray70") +
  labs(x="Effect size", y="") +
  coord_cartesian(xlim=c(-0.5, 0.5), ylim=c(1,9)) +
  ggtitle("My Title")

plot1

forest plot

我创建了向量来帮助解释问题。我希望 y 轴标签更像这样,使用 和 :estvariableposterior

Covariate1
   GroupA
   GroupB
   GroupC

Covariate2
   GroupA
   GroupB
   GroupC

Covariate3
   GroupA
   GroupB
   GroupC

协变量之间有一个空格。有谁知道如何做到这一点?到目前为止,我只找到了均匀增加/减少所有 y 轴项目之间空间的解决方案,但我需要一些更自定义的东西来对我的数据进行分组。

我没有使用,因为我对图中的每个协变量都有不同的统计模型(加上置信区间,这里不包括在内),而且我无法让它工作。ggforestplot

ggplot2 层次结构 yaxis forest-plots

评论


答: 暂无答案