首页 > 解决方案 > 将图像与多面板 ggplot2 对齐

问题描述

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

带有对齐图像的ggplot

这是图片的链接

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))

标签: rimageggplot2tidyverse

解决方案


只需将 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)) 

推荐阅读