R和ggplot:将x轴标签放在面板外面的ggplot中

时间:2017-03-06 18:40:35

标签: r ggplot2 geom-text

有没有办法让ggplot中的标签面板前移标签? 实际上我试图回答我的问题here。我没有得到任何令人满意的回应,虽然我认为在ggplot中是可能的。这是尝试获得解决方案,虽然是一个hacky。但是标签会在这里的情节面板下面呈现。

以下是我的(示例)数据,尝试的解决方案和结果图。

In [64]: np.cos(2*np.pi*y[:,None]*x).sum(axis=1)
Out[64]: array([ 4.        , -0.30901699,  0.80901699,  0.80901699, -0.30901699])

enter image description here

1 个答案:

答案 0 :(得分:2)

您必须关闭底部面板元素的剪裁:

p <- mydata %>% ggplot(aes(x = dist,y = Value,fill = factor(Year))) +geom_bar(stat='summary',position = 'dodge',fun.y='mean',width = 1) +
  facet_wrap(~PNo,ncol=2) +
  theme(axis.text.x = element_blank(),axis.ticks.x = element_blank()) +
  geom_label(data  = mydata %>% dplyr::filter(PNo %in% c('X-3','X-4')),aes(x = dist,y=0,label = Tag),size=6,inherit.aes=F,color = 'red') 
library(grid) 
gt <- ggplot_gtable(ggplot_build(p)) 
gt$layout$clip[grep("panel-2-\\d+", gt$layout$name)] <- "off"
grid.draw(gt) 

enter image description here

请参阅Point clipped on x-axis in ggplot