【发布时间】:2014-01-07 21:35:06
【问题描述】:
我正在尝试创建一个由绘图类型包裹的 ggplot2 构面。我使用了grid.arrange,但我正在尝试最大化绘图区域,使用 grid.arrange 由于 y 轴和图例的重复,我松散了区域。
具体来说,我正在尝试创建一个左侧有 BoxPlot 的图,右侧有相同数据的时间序列(相同的 Y 轴)。然后我会有一个 Y 轴和一个图例 - 这可能吗?
代码:
library(ggplot2)
library(gridExtra)
Time = c("19/12/2013 10:00","19/12/2013 10:01", "19/12/2013 10:02", "19/12/2013 10:03", "19/12/2013 10:04",
"19/12/2013 10:05", "19/12/2013 10:06", "19/12/2013 10:07", "19/12/2013 10:08", "19/12/2013 10:09",
"19/12/2013 10:10", "19/12/2013 10:11", "19/12/2013 10:12", "19/12/2013 10:13", "19/12/2013 10:14")
test <- data.frame(Time)
test$Factor <- c("t1", "t1", "t1", "t1", "t1", "t1", "t1", "t1", "t1", "t2", "t2", "t2", "t2", "t2", "t2")
test$Values <- c(4,7,2,9,6,9,1,1,5,8,3,4,3,6,7)
test$PROD <- test$PROD <- c("one", "two", "one", "two", "one", "one", "two", "one", "one",
"two", "one", "two", "two", "two", "one")
p1 <-ggplot(data=test,aes(Factor,Values )) +
geom_boxplot(outlier.colour = "red", outlier.size = 3, outlier.shape = 15, fill = "white", colour = "blue") +
theme(panel.grid.minor = element_line(colour = "grey"), plot.title = element_text(size = rel(2)),axis.text.x = element_text(angle=90, vjust=1), strip.text.x = element_text(size = 8, colour = "black", face = "bold")) +
geom_point(alpha = 0.6, position = position_jitter(w = 0.05, h = 0.0), aes(colour=factor(Factor)), size =3) +
facet_wrap(~PROD, scales = "free") +
ggtitle("MyTitle") +
scale_size_area() +
xlab("Tools") +
ylab("Values")
p2<-ggplot(data = test, aes(Time,Values )) +
ggtitle("MyTitle") +
theme(axis.text.x = element_text(angle=90, vjust=1),plot.title = element_text(size = rel(2))) +
geom_point(aes(colour=factor(Factor)), size = 3) +
facet_wrap(~PROD, scales = "free") +
xlab("TIME") +
ylab("Values")
grid.arrange(p1,p2,ncol=2)
【问题讨论】:
-
@baptiste 我不确定是否可以在这里应用虚拟分面,因为 Op 已经使用 facet_wrap..
-
@agstudy 从概念上讲,我认为虚拟变量可以处理这种情况,但它可能不是很直观
-
在这种情况下,虚拟分面可能也可以工作,但是 x 比例属于不同的类,所以它可能太棘手了。