我是R的新手,我正在尝试使用ggplot创建复合图。我已经搜索了如何做到这一点并且已经看到我可以使用facet函数,但是,这似乎是用于绘制可以按类型分割的数据,例如男/女。我有一个数据框,我想绘制恢复对抗浓度,并在不同的图上恢复平衡时间,但作为复合图。为此,我有以下代码:
p1 <- ggplot(dat2, aes(x = EqmTime, y = Recovery))
limits <- aes(ymax = Recovery + RecoveryError, ymin=Recovery - RecoveryError)
p1 + geom_point(size = 4) + geom_errorbar(limits, width=4) + geom_smooth(method = "lm", se = FALSE, colour="gray", size=1.5, linetype="dashed") +
labs(x='Equilibrium Time (hrs)', y='Nitrate Recovery (%)') + theme_bw() +
theme(axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank())
p2 <- ggplot(dat2, aes(x = StockConc, y = Recovery))
limits <- aes(ymax = Recovery + RecoveryError, ymin=Recovery - RecoveryError)
p2 + geom_point(size = 4) + geom_errorbar(limits, width=0.1) + geom_smooth(method = "lm", se = FALSE, colour="gray", size=1.5, linetype="dashed") +
labs(x='Concentration (g L-1)', y='Nitrate Recovery (%)') + theme_bw() +
theme(axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank())
此外,我还遇到一个问题,即我无法将图2的x轴标签中的“-1”作为上标,并且无法设置轴限制。例如,当我设置xlim = 20-180时,轴不会在这些位置开始和结束,但会使这些成为主要刻度线。
我非常感谢任何帮助!我知道其他帖子中已经解决了其中一些问题,但我似乎无法使用此建议来解决此问题。
答案 0 :(得分:0)
根据您的问题,我了解您想要在单个绘图窗口中绘制两个ggplots。您可以使用gridextra包执行此操作:
library(gridExtra)
grid.arrange(p1, p2, nrow=2)