1

我正在尝试将情节与“grey20”结合起来作为情节背景。但是,在组合图时,似乎发生了不希望的行为,因为顶部图和底部图之间出现了较轻的分隔线。

有人知道这是否来自我的错误,或者是否有解决方法来避免这种不愉快的行为?

非常感谢您的帮助 !

最好的,

# plotA

plotA <- plot_spacer()+ theme(plot.background = element_rect(fill = "grey20",color = "grey20"))

  
# plotB

plotB <- plot_spacer()+ theme(plot.background = element_rect(fill = "grey20",color = "grey20"))
  
  
# plotC
  
plotC <- plot_spacer()+ theme(plot.background = element_rect(fill = "grey20",color = "grey20"))
                              
# Combining plots

(plotA / (plotB + plotC )) + plot_layout(heights = c(1,.1))

编辑 - 虽然问题似乎来自我的特定图形设备设置,因为在直接使用 R(而不是 RStudio)时没有发生此问题,但问题已通过以下添加的元素代码段得到纠正:


((plotA / (plotB + plotC )) + plot_layout(heights = c(1,.1))) & theme(plot.background = element_rect(fill = "grey20",color = "grey20")

4

2 回答 2

0

不是一个真正的答案,而是为了证明可重复性。

当给出高度参数时会发生这种情况。正如 OP 所述,它在全局传递主题时消失。

library(patchwork)
library(ggplot2)
p <-
  replicate(2, list(
    plot_spacer() + 
      theme(plot.background = element_rect(fill = "grey20",color = "grey20"))))

wrap_plots(p, nrow = 2)

wrap_plots(p, nrow = 2, heights = c(1,.1))

reprex 包于 2021-04-04 创建(v1.0.0)

会话信息
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 4.0.3 (2020-10-10)
#>  os       macOS Big Sur 10.16         
#>  system   x86_64, darwin17.0          
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_GB.UTF-8                 
#>  ctype    en_GB.UTF-8                 
#>  tz       Europe/London               
#>  date     2021-04-04                  
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date       lib source        
#>  ggplot2     * 3.3.3   2020-12-30 [1] CRAN (R 4.0.2)
#>  patchwork   * 1.1.1   2020-12-17 [1] CRAN (R 4.0.2)

于 2021-04-04T19:03:57.003 回答
0

编辑 -

谢谢大家的回答,现在情况已经解决了!

我从这种情况中理解了三件事:

  1. 图形设备设置会对最终结果产生影响(当我直接使用 R 而不是 RStudio 时没有出现这个问题)

  2. 高度争论似乎是造成这种情况的原因

  3. 无论哪种方式,添加以下代码都可以解决所有问题(在这里,指定所有三个拼凑而成的绘图背景应该被着色并填充每个单独的绘图的方式):

((plotA / (plotB + plotC )) + plot_layout(heights = c(1,.1))) & theme(plot.background = element_rect(fill = "grey20",color = "grey20")

最好的,

亨利

于 2021-04-05T19:15:09.953 回答