R 使用镶嵌面包裹时重新排列几何图形条

R 使用镶嵌面包裹时重新排列几何图形条,r,ggplot2,R,Ggplot2,我试图实现的是按每个面板的给定变量对条进行排序 一个简单的例子: library(ggplot2) library(plyr) df <- data.frame(fac = c("a", "b", "c", "e", "b", "c", "d"), val = c(1, 2, 7, 4, 5, 3, 1), group = c(1, 1, 1, 1, 2, 2, 2)

我试图实现的是按每个面板的给定变量对条进行排序

一个简单的例子:

    library(ggplot2)
    library(plyr)

    df <- data.frame(fac = c("a", "b", "c", "e", "b", "c", "d"),             
                  val = c(1, 2, 7, 4, 5, 3, 1),
                  group = c(1, 1, 1, 1, 2, 2, 2))

    p1 <- ggplot(df, aes(x = fac, y = val)) + geom_bar() + facet_wrap(~ group, scales = "free") + coord_flip()
    p1

    p2 <- ggplot(df, aes(x = reorder(fac, val), y = val)) + geom_bar() + facet_wrap(~ group, scales = "free") + coord_flip()
    p2
库(ggplot2)
图书馆(plyr)

df我认为,
grid.arrange
是一个更好的工具,而不是试图将无刻度塞进刻面框架中:

library(gridExtra)
q1 <- ggplot(subset(df,group == 1),aes(x = reorder(fac,val),y = val)) + 
        geom_bar() + 
        facet_wrap(~group) + 
        coord_flip()

q2 <- q1 %+% subset(df,group == 2)

grid.arrange(q1,q2,nrow = 1)
库(gridExtra)

非常感谢!我不知道grid.arrange.Nice解决方案。谢谢
grid.newpage()
grob <- ggplotGrob(p3)
object.path <- grid.ls(getGrob(grob, "axis.text.y", grep = TRUE, global = TRUE), print = FALSE)$name
grob <- grid::editGrob(grob, object.path[1], label = c("ABDQ", "M", "A", "B"))
grob <- grid::editGrob(grob, object.path[2], label = c("A", "B", "EEEEX"))
grid.draw(grob)
library(gridExtra)
q1 <- ggplot(subset(df,group == 1),aes(x = reorder(fac,val),y = val)) + 
        geom_bar() + 
        facet_wrap(~group) + 
        coord_flip()

q2 <- q1 %+% subset(df,group == 2)

grid.arrange(q1,q2,nrow = 1)