如何将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
相关产品推荐
相关产品推荐

