表示使用与GGPLOT2中的R facet_wrap多个轴标签(Showing multiple a

2019-07-21 06:42发布

我已经得到了我与ggplo2创造了一个很好的facet_wrap密度图。 我想为每个面板具有而不是仅具有沿着底部沿左侧y轴标签和X标记x和y轴标签。 我现在所拥有的是这样的:

library(ggplot2)
myGroups <- sample(c("Mo", "Larry", "Curly"), 100, replace=T)
myValues <- rnorm(300)
df <- data.frame(myGroups, myValues)


p <- ggplot(df)  + 
  geom_density(aes(myValues), fill = alpha("#335785", .6)) + 
  facet_wrap(~ myGroups)
p

返回:


(来源: cerebralmastication.com )

看起来这应该是简单的,但我的谷歌赋一直穷得找到答案。

Answer 1:

简短的回答:你不能这样做。 它可能是有意义3个图表,但如果你有什么样的32个图大格? 这看起来吵坏。 GGplot的理念是做正确的事情以最小的定制,这意味着,当然,你不能自定义的东西一样多,包等。

龙答:你可以伪造它通过构建三个独立ggplot对象并将它们组合。 但它不是一个非常通用的解决方案。 下面是从哈德利的书中一些代码,假定您已经创建ggplot对象a,b和c。 它的底部行中把一个顶行中,与b和c。

grid.newpage()
pushViewport(viewport(layout=grid.layout(2,2)))
vplayout<-function(x,y)
    viewport(layout.pos.row=x,layout.pos.col=y)
print(a,vp=vplayout(1,1:2))
print(b,vp=vplayout(2,1))
print(c,vp=vplayout(2,2))


Answer 2:

您可以通过秤=“免费”在您的facet_wrap看涨期权做到这一点:

myGroups <- sample(c("Mo", "Larry", "Curly"), 100, replace=T)
myValues <- rnorm(300)
df <- data.frame(myGroups, myValues)


p <- ggplot(df)  + 
  geom_density(aes(myValues), fill = alpha("#335785", .6)) + 
  facet_wrap(~ myGroups, scales="free")
p


文章来源: Showing multiple axis labels using ggplot2 with facet_wrap in R