下面是我用来制作一些箱图的一些示例代码:
stest <- read.table(text=" site year conc
south 2001 5.3
south 2001 4.67
south 2001 4.98
south 2002 5.76
south 2002 5.93
north 2001 4.64
north 2001 6.32
north 2003 11.5
north 2003 6.3
north 2004 9.6
north 2004 56.11
north 2004 63.55
north 2004 61.35
north 2005 67.11
north 2006 39.17
north 2006 43.51
north 2006 76.21
north 2006 158.89
north 2006 122.27
", header=TRUE)
require(ggplot2)
ggplot(stest, aes(x=year, y=conc)) +
geom_boxplot(horizontal=TRUE) +
facet_wrap(~site, ncol=1) +
coord_flip() +
scale_y_log10()
结果如下:
我尝试了所有我能想到的但不能制作一个情节,其中南方面仅包含显示数据的年份(2001年和2002年)。我正在尝试做什么?
这是屏幕截图的link(DEAD),显示了我想要实现的目标:
答案 0 :(得分:3)
使用scales='free.x'
参数facet_wrap
。但我怀疑你需要做的不仅仅是为了获得你正在寻找的情节。
在您最初的aes(x=factor(year), y=conc)
来电中专门ggplot
。
答案 1 :(得分:0)
一种避免问题的简单方法(结果相当不错):
分别生成两个箱图,然后使用grid.arrange
包的gridExtra
命令将它们连接在一起。
library(gridExtra)
p1 <- ggplot(subset(stest,site=="north"), aes(x=factor(year), y=conc)) +
geom_boxplot(horizontal=TRUE) + coord_flip() + scale_y_log10(name="")
p2 <- ggplot(subset(stest,site=="south"), aes(x=factor(year), y=conc)) +
geom_boxplot(horizontal=TRUE) + coord_flip() +
scale_y_log10(name="X Title",breaks=seq(4,6,by=.5)) +
grid.arrange(p1, p2, ncol=1)