繁体   English   中英

改变ggplot2中的facet_grid输出

[英]alter facet_grid output in ggplot2

这是我图的当前版本:

    require(MuMIn)
    require(ggplot2)
    data(Cement)
    d <- data.frame(Cement)
    dd <- melt(d,id.var = "y")

ggplot(dd,aes(x = y,y = value, group = variable)) + 
  geom_point(size = 2)  + 
  theme_classic() +
  facet_grid(variable ~ ., scales = "free") + 
  theme(axis.text.x = element_text(angle = 90, hjust = 1)) + 
  xlab("") +
  ylab("") +
  guides(colour = FALSE)

在此处输入图片说明

我怎样才能

1)更改此图,以使X1,X2,X3和X4标签在左侧,并且它们读取c(“ factor x ^ 2”,“ factor x ^ 3”,“ factor x ^ 4”,“因子x ^ 5“),

2)是否有一种方法可以用框包围每个面板,以使它们更具区别?

尝试这个,

library(ggplot2)
library(gtable)

p <- ggplot(mtcars, aes(mpg, cyl))+
  facet_grid(gear~., labeller=label_both) + geom_point() +
  theme(strip.text.y=element_text(angle=90)) + labs(y="")


g <- ggplotGrob(p)

g$layout[g$layout$name == "strip-right",c("l", "r")] <- 2
grid.newpage()
grid.draw(g)

问题1(部分)和2的解决方案:

names(d) <- c("x^1","x^2","x^3","x^4","y")
dd <- melt(d,id.var = "y", variable.name="factor")

ggplot(dd, aes(x = y, y = value, group = factor)) + 
  geom_point(size = 2)  + 
  theme_bw() +
  facet_grid(factor ~ ., scales = "free", labeller = label_both) + 
  theme(axis.text.x = element_text(angle = 90, hjust = 1), panel.grid = element_blank()) + 
  xlab("") +
  ylab("") +
  guides(colour = FALSE)

这使: 在此处输入图片说明

使用labeller是一个不错的选择(问题1), facet_gridfacet_wrap具有一个switch参数,用于将facet标签稍微移动一点(问题2):

library("ggplot2")
x <- runif(100)
exp <- rep(1:4, each = 25)
y <- x^exp
df <- data.frame(x, y, exp)

# facet_grid
ggplot(df, aes(x, y)) +
facet_grid(exp ~ ., labeller = label_bquote(factor~x^.(exp)), switch = "y") + 
geom_point() + labs(y="") +
theme(strip.background = element_blank()) # Remove facet border if you want

# facet_wrap
ggplot(df, aes(x, y)) +
facet_wrap(~ exp, ncol = 1, labeller = label_bquote(factor~x^.(exp)), switch = "y") + 
geom_point() + labs(y="") +
theme(strip.background = element_blank())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM