[英]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(~.))
(并排在这里用于空间/演示,代码没有这样做)
旁注:@chemdork123 的建议答案在这里有效:使用annotate
添加特定的几何图形。 虽然我不喜欢这种方法,但它就足够了。 (链接答案中保留了'green'
。)
p1 + annotate(geom = 'segment', y = Inf, yend = Inf, color = 'green', x = -Inf, xend = Inf, size = 4)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.