将 ggplot x 轴线扩展到数据范围之外

Extend ggplot x-axis lines past range of data

我正在尝试构建一堆 ggplot2 密度图,如下所示:

并且我已经排列/限制了 x 轴,以便使用 gridExtra 包堆叠这些 grpahs,刻度线完美排列。然而,在这样做的过程中,我之前认为是实心 x 轴标记的结果是密度图底部的底部 "marker" 线:

有没有办法加回某种 x 轴?没有它,情节看起来有点 naked/empty。我理解它更清楚地表明了数据的限制,但它看起来未完成且损坏。

编辑

这是我使用的代码:

g <- ggplot(df_L, aes(x=values, linetype= type)) + 
geom_density() + 
ggtitle(expression('Low Region: '~LI[i]~'and'~WI[i])) +
scale_x_continuous(breaks = c(seq(0,100,10)), expand = c(0,0)) +
scale_y_continuous(expand = c(0,0)) +
coord_cartesian(xlim = c(0,100)) + 
theme(text = element_text(size=20),
      plot.title = element_text(size=14, vjust=1.5, hjust=0.5),
      axis.title.x=element_blank(),
      axis.title.y = element_blank(),
      legend.position = c(0.1, 0.75),
      legend.text.align = 0,
      legend.box = 'horizontal',
      legend.margin = unit(45.0, 'line'),
      legend.text=element_text(size=14,vjust=0,hjust=0),
      legend.key.height = unit(1, 'line'),
      legend.key.width = unit(1, 'line'),
      panel.background = element_rect(fill = "white")) + 
scale_linetype_manual(values=c(1,2,3),
                      labels=c(expression(LI[i]),expression(WI[i]))) +
guides(linetype = guide_legend(title=NULL)) 

g

我认为问题在于您使用的主题(默认)没有指定的 x 轴(或 y 轴),但轴位置由网格暗示.因此,您需要专门添加轴,例如使用 +theme_bw() 或在主题中添加一些内容。我做到了(红色,你真的可以看到它):

set.seed(124)
df_L <- data.frame(values=rnorm(1000,500,200),type=sample(LETTERS[1:3],1000,T))

g <- ggplot(df_L, aes(x=values, linetype= type)) + 
  geom_density() + 
  ggtitle(expression('Low Region: '~LI[i]~'and'~WI[i])) +
  scale_x_continuous(breaks = c(seq(0,100,10)), expand = c(0,0)) +
  scale_y_continuous(expand = c(0,0)) +
  coord_cartesian(xlim = c(0,100)) + 
  theme(text = element_text(size=20),
        plot.title = element_text(size=14, vjust=1.5, hjust=0.5),
        axis.title.x=element_blank(),
        axis.title.y = element_blank(),
        legend.position = c(0.1, 0.75),
        legend.text.align = 0,
        legend.box = 'horizontal',
        legend.margin = unit(45.0, 'line'),
        legend.text=element_text(size=14,vjust=0,hjust=0),
        legend.key.height = unit(1, 'line'),
        legend.key.width = unit(1, 'line'),
        panel.background = element_rect(fill = "white"),
        axis.line=element_line(colour="red",size=2)) + 
  scale_linetype_manual(values=c(1,2,3),
                        labels=c(expression(LI[i]),expression(WI[i]))) +
  guides(linetype = guide_legend(title=NULL))