【发布时间】:2019-08-25 19:13:55
【问题描述】:
我有 2 个数据集,都有深度列。但是 df1 有 ~400 行,而 df2 有 7000 行。 df1 的深度值(我想成为我的常用 x 轴)从 48-120 到 df2 48-133。当我制作地块时,范围内的这种差异会阻止地块排列。
df1 样本数据
深度 L F P Depo 67.48 1.003 1.063 1.066 涡轮 67.63 1.004 1.020 1.024 67.73 1.011 1.017 1.028 67.83 1.006 1.007 1.014 涡轮 67.92 1.003 1.029 1.032 临 68.06 1.004 1.007 1.011 专业版
df2 样本数据
深度钙钛 67.41 378 241 67.91 422 253 67.94 402 262 67.95 412 264 67.98 377 266 68.01 386 263 68.02 326 266 68.08 338 219
我尝试制作单独的绘图,然后使用 grid.draw 但这不起作用。
从 DF1 创建绘图
Lin <- ggplot(DF1, aes(x=depth, y=L)) + geom_line() + geom_point(data = DF1, aes(x=depth, y=L, color = Depo))
Fab <- ggplot(DF1, aes(x=depth, y=P)) + geom_path() + geom_point(data = DF1, aes(x=depth, y=P, color = Depo))
Fol <- ggplot(DF1, aes(x=depth, y=F)) + geom_path() + geom_point(data = DF1, aes(x=depth, y=F, color = Depo))
将绘图与 grid.draw 相结合适用于 df1 图表
grid.draw(rbind(ggplotGrob(Fol), ggplotGrob(Lin), ggplotGrob(Fab), size = "last"))
从 DF2 创建绘图
Ca1 <- ggplot(DF2, aes(x=depth, y=Ca)) + geom_path()
当我尝试合并来自 2 个数据帧的图时,它会引发错误,即 x 和 y 必须具有相同数量的列。
grid.draw(rbind(ggplotGrob(Fol), ggplotGrob(Lin), ggplotGrob(Fab), ggplotGrob(Ca1), size = "last"))
Cowplot 有效,但深度与我的 df2 图 (Ca1) 不一致
plot_grid(Fol, Lin, Fab, Ca1, align="h", axis="b", nrow = 4, rel_widths = c(1,2))
我尝试了其他一些排列图表的方法,但似乎它们都排列了图表,而不是 x 轴的实际值。我也尝试使用 facet wrap,但不知道如何组合 2 个 dfs。在我寻找解决这个问题的过程中,我一直看到将 2 个数据框组合起来,但我看不出这将如何处理我的数据? 有谁知道我如何排列这些图表?我有很多变量需要从两个数据集中进行比较。
【问题讨论】:
-
尝试其他软件包,看看它是否适合你stackoverflow.com/a/48164920/786542
-
谢谢。 egg 和 patchwork 都给了我同样的东西,df2 的情节没有正确对齐。不过我会继续努力的。