簡體   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