【问题标题】:Aligning image with multi panel ggplot2将图像与多面板 ggplot2 对齐
【发布时间】:2020-03-28 01:38:36
【问题描述】:

尝试将图像与以下数据集和代码的一些地球化学数据图对齐。绘图应位于左侧列,并与 platted 项目的顶部和底部对齐。 理想情况下,它看起来像这样:

ggplot with aligned image

这是image的链接

k2_xrf <- tibble::tribble(
  ~Location, ~depth, ~depth_unit, ~param, ~count, ~units,  ~age, ~units_age,
  "Kiani",     0L,   "cm",   "Si",  2984L,  "ppm", 3000L,       "BP",
  "Kiani",     2L,   "cm",   "Si",  3318L,  "ppm",    NA,         NA,
  "Kiani",     4L,   "cm",   "Si",  3296L,  "ppm",    NA,       "BP",
  "Kiani",     6L,   "cm",   "Si",  3712L,  "ppm", 5400L,       "BP",
  "Kiani",     8L,   "cm",   "Si",  4416L,  "ppm",    NA,       "BP",
  "Kiani",     0L,   "cm",    "S",  3172L,  "ppm", 3000L,       "BP",
  "Kiani",     2L,   "cm",    "S",  3411L,  "ppm",    NA,       "BP",
  "Kiani",     4L,   "cm",    "S",  3835L,  "ppm",    NA,       "BP",
  "Kiani",     6L,   "cm",    "S",  4281L,  "ppm", 5400L,       "BP",
  "Kiani",     8L,   "cm",    "S",  3896L,  "ppm",    NA,       "BP",
  "Kiani",     0L,   "cm",    "K",   325L,  "ppm", 3000L,       "BP",
  "Kiani",     2L,   "cm",    "K",    99L,  "ppm",    NA,       "BP",
  "Kiani",     4L,   "cm",    "K",   180L,  "ppm",    NA,       "BP",
  "Kiani",     6L,   "cm",    "K",   559L,  "ppm", 5400L,       "BP",
  "Kiani",     8L,   "cm",    "K",   504L,  "ppm",    NA,       "BP"
)
library(tidyverse)
library(tidypaleo)

adm <- age_depth_model(depth = c(0, 6), age = c(3000, 5400))

k2_xrf %>%
  mutate(param = fct_relevel(param, "Si", "S", "K")) %>%
  ggplot(aes(x = count, y = depth)) +
  geom_lineh() +
  scale_y_depth_age(adm, age_breaks = c(3000, 5400)) +
  facet_geochem_gridh(vars(param))

【问题讨论】:

  • 您可以查看cowplot 包及其ggdrawdraw_imagedraw_plot 函数。
  • 另一个有用的包来自 patchwork 库,它可以帮助非常简单地对齐绘图
  • 谢谢,对不起,我是 R 的菜鸟。是的,另一个人建议拼凑。我认为使用函数 wrap_plots。我想我需要创建一个单独的图像对象,然后使用 wrap_plots 将它们串在一起?

标签: r image ggplot2 tidyverse


【解决方案1】:

只需将 cols = vars(param) 添加到 facet_grid,如下所示。此外,您的代码中有很多错别字。确保下次您在粘贴代码时对其进行审核。

library(tidyverse)
library(tidypaleo)

adm <- age_depth_model(depth = c(0, 6), age = c(3000, 5400))

k2_xrf %>%
  mutate(param = fct_relevel(param, "Si", "S", "K")) %>%
  ggplot(aes(x = count, y = depth)) +
  geom_line() +
  scale_y_depth_age(adm, age_breaks = c(3000, 5400)) +
  facet_grid(cols = vars(param)) 

【讨论】:

    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-04
    • 1970-01-01
    • 2011-01-14
    相关资源
    最近更新 更多