【问题标题】:Ordering of ggplot2 facets changes after adding to a facet添加到构面后,ggplot2构面的顺序发生变化
【发布时间】:2026-02-06 18:55:02
【问题描述】:

在使用ggplot2facet_wrap 之前,我将因子的级别更改为所需的顺序。它和第一个示例一样工作正常。

在第二个中,我在其中一个刻面添加了一个水平的like。它改变了构面的顺序。

如何停止这种自动更改?

mpg2 <- mpg
mpg2$drv <- factor(mpg2$drv, levels = c("r", "4", "f"))

p <- ggplot(mpg2, aes(cty, hwy)) + 
  geom_point() + 
  facet_grid(rows = vars(drv), scales = "free")
p

p + geom_hline(data = data.frame(xint = 20, drv = "r"),
          aes(yintercept = xint), linetype = "dotted", color = "blue") 

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:

    dataframe 行、drv 列的因子级别必须与原始数据帧 mpg2 相同:

    p + geom_hline(data = data.frame(xint = 20, 
                                     drv = factor("r", levels = levels(mpg2$drv))),
                   aes(yintercept = xint), linetype = "dotted", color = "blue")
    

    【讨论】:

      最近更新 更多