繁体   English   中英

如何在ggplot中保留顶部和底部轴,同时删除面板边框

[英]How to keep top and bottom axes in ggplot, while removing the panel border

我想保留两个 x 轴(底部和顶部),同时删除面板边框(或两个 y 轴,左右)。

代码:

library(ggplot2)
p1 <- ggplot(mtcars, aes(mpg, disp)) + geom_line(colour = "blue") +
  theme_bw() +
  theme(axis.title.y=element_blank(),
        axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank(),
        panel.border = element_blank(),
        axis.line.x = element_line(size = 0.5, linetype = "solid", colour = "lightgrey"),
        axis.line.y = element_blank(),
        panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank(),
        panel.background = element_blank())
print(p1)

在此处输入图像描述

这可以通过sec_axis来完成。

为了重现您的白色背景,我将在调用theme之前添加theme_bw() 这也有助于我打破较低的 x 轴线,然后我将添加第二个轴。

library(ggplot2)
p1 <- ggplot(mtcars, aes(mpg, disp)) + geom_line(colour = "blue") +
  theme_bw() +
  theme(axis.title.y=element_blank(),
        axis.title.x=element_blank(),
        axis.text.x=element_blank(),
        axis.ticks.x=element_blank(),
        panel.border = element_blank(),
        axis.line.x = element_line(size = 2, linetype = "solid", colour = "lightgrey"),
        axis.line.y = element_blank(),
        panel.grid.minor = element_blank(),
        panel.grid.major.x = element_blank())

# original
p1
# both lines
p1 + scale_x_continuous(sec.axis=sec_axis(~.))

并排的 ggplots,第二个带有顶/底线

(并排在这里用于空间/演示,代码没有这样做)


旁注:@chemdork123 的建议答案这里有效:使用annotate添加特定的几何图形。 虽然我不喜欢这种方法,但它就足够了。 (链接答案中保留了'green' 。)

p1 + annotate(geom = 'segment', y = Inf, yend = Inf, color = 'green', x = -Inf, xend = Inf, size = 4)

向ggplot添加第二条轴线的替代方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM