ggplot2 - 删除面板顶部边框

DJV*_*DJV 5 r ggplot2

我只想删除图表的顶部。我在这里这里找到了一些方向。但是,它们会删除所有边框或顶部和左侧。我知道我可能应该将参数panel.borderelement_blank()or一起使用,element_rect()但我找不到定义它的正确方法。

我在找这个

在此处输入图片说明

library(tidyverse)

mtcars %>% 
  ggplot(aes(factor(cyl), disp)) + 
  geom_boxplot() + 
  jtools::theme_apa() + 
  theme(
    panel.border = element_blank())
Run Code Online (Sandbox Code Playgroud)

将导致:

在此处输入图片说明

Yur*_*nko 9

又一个选择(参考 Tjebo 的一些建议)

library(tidyverse)

mtcars %>% 
  ggplot(aes(factor(cyl), disp)) + 
  geom_boxplot() + 
  scale_y_continuous(sec.axis = sec_axis(~ .))+
  jtools::theme_apa() +
  theme(
    axis.line.x.bottom = element_line(color = 'black'),
    axis.line.y.left   = element_line(color = 'black'),
    axis.line.y.right  = element_line(color = 'black'),
    axis.text.y.right  = element_blank(),
    axis.ticks.y.right = element_blank(),
    panel.border       = element_blank())
Run Code Online (Sandbox Code Playgroud)


小智 5

使用您发布的参考文献之一,您最终会得到这个脚本(感谢 Rudolf Cardinal 和 Alex Holcombe)。您可以使用该功能theme_border()来绘制您想要的边框。为此,只需下载链接中提供的脚本,将其放入您的工作目录中并执行以下代码:

library(tidyverse)
library(grid)
source("rnc_ggplot2_border_themes_2013_01.r")
mtcars %>% 
  ggplot(aes(factor(cyl), disp)) + 
  geom_boxplot() + 
  jtools::theme_apa() + 
  theme(
    panel.border = theme_border(type = c("bottom","right","left")))
Run Code Online (Sandbox Code Playgroud)

无国界情节

希望这可以帮助!