我在做了一些挖掘后感觉这可能不起作用,我需要发现一种替代方法,但我还是会问。
我必须使用par(mfrow=c(1,2))
我的图表代码如下:
mTotal <- mean(data$Total)
mTotal
data$valence1[data$Total >= mTotal] <- "Above Mean"
data$valence1[data$Total < mTotal] <- "Below Mean"
data$valence2[data$Delta >= 0] <- "Positive"
data$valence2[data$Delta < 0] <- "Negative"
data
par(mfrow=c(1,2))
ggplot(data,
aes(x = Index,
y = Total,
fill = valence1)) +
geom_bar(stat = "identity",
colour = "black",
alpha = 0.618) +
geom_hline(yintercept = mTotal,
linetype = "dashed",
colour = "red") +
annotate("text", x = 19, y = mTotal + 50,
label = "Problem Period") +
xlab("Date") +
ylab("Ambulance Arrivals") +
ggtitle("Ambulance Arrivals by Month
Jan 2013 - Feb 2014")
maxDelta <- max(data$Delta)
maxDelta
minDelta <- min(data$Delta)
minDelta
ggplot(data,
aes(x = Index,
y = Delta,
fill = valence2)) +
geom_bar(stat = "identity",
position = "identity",
colour = "black",
alpha = 0.618) +
annotate("rect", xmin = 13.5, xmax = 24.5,
ymin = minDelta, ymax = maxDelta,
alpha = 0.3, fill = "blue") +
annotate("text", x = 19, y = maxDelta + 25,
label = "Problem Period") +
xlab("Date") +
ylab("Change in Arrivals") +
ggtitle("Change in Ambulance Arrivals Month over Month")
如果无法做到这一点,那么我们将会感谢更好路线的方向。
谢谢,
答案 0 :(得分:26)
查看gridExtra
包并改用grid.arrange
。与ggplot
精彩合作。
只需将您的第一个ggplot
电话分配给变量(例如plot1
),然后将另一个调用分配给另一个变量(例如plot2
)并执行以下操作:
grid.arrange(plot1, plot2, nrow=1, ncol=2)
答案 1 :(得分:6)
mfrow
用于基本图形。对于ggplot2
,你需要一种不同的方法,比如@hrbmstr提到的方法,或者这个方法:
library("ggplot2")
library("grid")
a <- qplot(x = rnorm(10))
b <- qplot(x = rnorm(10))
vplayout <- function(x, y) viewport(layout.pos.row = x, layout.pos.col = y)
grid.newpage()
pushViewport(viewport(layout = grid.layout(1, 2)))
print(a, vp = vplayout(1,1))
print(b, vp = vplayout(1,2))
答案 2 :(得分:3)