[英]Showing multiple axis labels using ggplot2 with facet_wrap in R
我用ggplot2
创建了一个很好的facet_wrap密度图。 我希望每个面板都有x和y轴标签,而不是只有左侧的y轴标签和底部的x标签。 我现在拥有的是这样的:
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 )
看起来这应该很简单,但我的Google Fu太穷了,无法找到答案。
简短回答:你做不到。 用3个图表可能有意义,但是如果你有32个图形的大格子怎么办? 那看起来很吵,很糟糕。 GGplot的理念是以最少的自定义来做正确的事情,这自然意味着您无法像其他软件包那样自定义事物。
答案很长:您可以通过构建三个单独的ggplot对象并将它们组合来伪造它。 但这不是一个非常普遍的解决方案。 这是Hadley的书中的一些代码,假设你已经创建了ggplot对象a,b和c。 它将a放在顶行,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))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.