You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将ggplot2中横向并列分面改为垂直堆叠?

ggplot2分面改为纵向垂直堆叠的修改方法

要将横向并列的分面改为纵向垂直堆叠(Answerer在上,NotAnswerer在下),只需调整facet_grid()的公式结构,步骤如下:

  • 核心修改:把原代码中的facet_grid(. ~ PP_by, scales = 'free_x')改为facet_grid(PP_by ~ ., scales = 'free_x')。

    • facet_grid()的语法是行变量 ~ 列变量,. ~ PP_by表示以PP_by为列变量(横向分面),而PP_by ~ .表示以PP_by为行变量(纵向分面),这样两个类别就会垂直堆叠展示。
  • 可选:强制分面顺序:如果你的数据中PP_by的默认顺序不是Answerer在前,需要先将其转为因子并指定层级,确保分面顺序符合要求:

    Example$PP_by <- factor(Example$PP_by, levels = c("Answerer", "NotAnswerer"))
    

修改后的完整示例代码

library(ggplot2)

# 可选:指定分面顺序
Example$PP_by <- factor(Example$PP_by, levels = c("Answerer", "NotAnswerer"))

ggplot(Example, aes(x = x_var, y = y_var)) +
  geom_point() +
  geom_smooth(method = "loess") +
  geom_smooth(method = "lm", color = "red") +
  facet_grid(PP_by ~ ., scales = 'free_x')  # 关键修改处

内容的提问来源于stack exchange,提问作者Chris Ruehlemann

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 14:12:02