如何针对 R 中 facet_grid 中的每个小平面分别更改每个图形的 x 轴中断数?

How can I change the number of breaks of x axis for each graph individually for each facet in a facet_grid in R?

如何为 facet_grid 中的每个方面分别更改每个图形的 x 轴中断数? 我想为每个方面分别修改 x 轴。我试过 scale_x_continuos(breaks =..., n.breaks = ...) 但我不能。 我还用 theme_replace 删除了 theme_set(theme_paleo(8)) 并尝试使用主题(axis.x.text =,axis.ticks =,等等)但没有积极结果,谁能帮帮我。

这是link中的地层图示例:https://cran.r-project.org/web/packages/tidypaleo/vignettes/strat_diagrams.html

代码:

library(tidyverse)
library(tidypaleo)
theme_set(theme_paleo(8))

data("alta_lake_geochem")

alta_lake_geochem

alta_plot <- ggplot(alta_lake_geochem, aes(x = value, y = depth)) +
  geom_lineh() +
  geom_point() +
  scale_y_reverse() +
  facet_geochem_gridh(vars(param)) +
  labs(x = NULL, y = "Depth (cm)")

alta_plot

alta_plot

一个选项是 ggh4x 包,它通过 facetted_pos_scales 允许为每个方面单独设置比例。在下面的代码中,我使用 facetted_pos_scales 为第一个和第三个方面设置中断,而对于所有其他方面,使用默认值 (NULL).

注 1:facetted_pos_scales 需要通过 scales="free_x".

释放 x 刻度

注意 2:为了使 facetted_pos_scalesscale_y_reverse 一起工作,我也必须将 scale_y_reverse 移到 facetted_pos_scales 中。

library(tidyverse)
library(tidypaleo)
library(ggh4x)

theme_set(theme_paleo(8))

data("alta_lake_geochem")

ggplot(alta_lake_geochem, aes(x = value, y = depth)) +
  geom_lineh() +
  geom_point() +
  facet_geochem_gridh(vars(param), scales = "free_x") +
  labs(x = NULL, y = "Depth (cm)") +
  facetted_pos_scales(
    x = list(
      scale_x_continuous(breaks = 1:8),
      NULL,
      scale_x_continuous(n.breaks = 10),
      NULL
    ),
    y = list(
      scale_y_reverse()
    )
  )