是否可以重复小平面标题(例如,对于整个绘图期间的柱)?

https://ggplot2.tidyverse.org/reference/facet_grid.html

p <- ggplot(mpg, aes(displ, cty)) + geom_point()
p + facet_grid(vars(drv), vars(cyl))

enter image description here

我正在努力实现的是,4、5、6和8在每一行中以方面标题的样式出现.我怎样才能做到这一点呢?

谢谢!

推荐答案

不知道有没有默认选项,但您可以使用patchwork来获得所需的结果,即为网格的每一行单独绘制一张图,并将它们粘合在一起:

library(ggplot2)
library(patchwork)

mpg |> 
  transform(cyl = factor(cyl)) |> 
  split(~drv) |> 
  purrr::imap(
    \(x, y) {
      # Remove axis title expect for the middle row
      remove_labs_y <- if (y != "f") labs(y = NULL)
      # Remove axis expect for the bottom row
      remove_axis_x <- if (y != "r") {
        theme(
          axis.text.x = element_blank(),
          axis.title.x = element_blank(),
          axis.ticks.x = element_blank(),
          axis.ticks.length.x = unit(0, "pt")
        )
      }
      p <- ggplot(x, aes(displ, cty)) +
        geom_point() +
        # Fix limits
        scale_y_continuous(limits = range(mpg$cty))
      
      p + facet_grid(vars(drv), vars(cyl), drop = FALSE) + 
        remove_labs_y +
        remove_axis_x
    }
  ) |> 
  wrap_plots(ncol = 1)

R相关问答推荐

通过Plotly绘制线串几何形状的3D图

使用Shiny组合和显示复制和粘贴的数据

多个ggpredicate对象的平均值

跨列应用多个摘要函数:summerise_all:列表对象无法强制为double类型'

如何创建构成多个独立列条目列表的收件箱框列?

在值和NA的行顺序中寻找中断模式

根据R中的另一个日期从多列中 Select 最近的日期和相应的结果

如何在kableextra调用cell_spec()中忽略NA?

使用case_match()和char数组重新编码值

使用ggsankey调整Sankey图中单个 node 上的标签

当月份额减go 当月份额

制作等距离的线串副本

从BRM预测价值

如何计算多个日期是否在一个日期范围内

如何使用列表中多个列表中的第一条记录创建数据框

WRS2包中带有bwtrim的简单ANOVA抛出错误

计算Mean by分组和绑定到R中的数据集

用满足特定列匹配的另一行替换NA行

在shiny 表格中输入的文本在第一次后未更新

列间序列生成器的功能