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)