我正在try 使用facet_WRAP将标签(a、b、c...)添加到实际绘图的边距之外.我希望将它们放在标签区域中,但要与Facet_WRAP标签(它是数据组的名称)分开.我可以使用COORD_CARTESIAN(CLIP="OFF")将文本推到绘图的边界之外,但是由FEET_WRAP创建的标签背景会阻止注释.我可以使用Theme(strip.back=Element_Blank())隐藏标签背景,这会使注释可见,但从美学上讲,我更喜欢有背景.有没有办法使geom_text注释显示在facet_print标签的上方,而不是下方?

下面是一个例子:

df <- data.frame(x=rep(1:3, 4), mydat=rep(c('apple', 'kiwi', 'orange', 'pear'), each=3))
labels <- data.frame(mydat=as.factor(c('apple', 'kiwi', 'orange', 'pear')), 
                     label=paste0('(', letters[1:4], ')'))

ggplot(df, aes(x,x)) +
  facet_wrap(~mydat) +
  geom_point() +
  geom_text(data = labels, aes(label=label), #geom_text or geom_label
            x = -Inf, y = Inf, hjust=0, vjust=0,
            inherit.aes = FALSE) + 
  #theme(strip.background = element_blank()) +
  coord_cartesian(clip = "off")

With the facet_wrap background: enter image description here

Without the facet_wrap background: enter image description here

推荐答案

您可以降低gtable布局中条带面板的‘z’值.例如.

g = ggplot(df, aes(x,x)) +
  facet_wrap(~mydat) +
  geom_point() +
  geom_text(data = labels, aes(label=label), #geom_text or geom_label
            x = -Inf, y = Inf, hjust=0, vjust=0,
            inherit.aes = FALSE) + 
  coord_cartesian(clip = "off")

gg = ggplotGrob(g)
gg$layout[grep('strip', gg$layout$name), 'z'] = 0
grid::grid.draw(gg)

enter image description here

R相关问答推荐

R中的Fasttext langue_identification返回太多参数-如何与文本匹配?

根据列中的数字移动单元格位置

R:如何自动化变量创建过程,其中我需要基于ifelse()为现有变量的每个级别创建一个单独的变量

根据固定值范围在tible中添加新行

Tidyverse/Djirr为从嵌套列表中提取的列名赋值的解决方案

R创建一个数据透视表,计算多个组的百分比

我如何才能找到FAMILY=POISSON(LINK=&Q;LOG&Q;)中的模型预测指定值的日期?

对于变量的每个值,仅 Select 包含列表中所有值的值.R

R—将各种CSV数字列转换为日期

合并DFS列表并将索引提取为新列

R spatstat Minkowski Sum()返回多个边界

有没有办法使用ggText,<;Sub>;&;<;sup>;将上标和下标添加到同一元素?

TreeNode打印 twig 并为其上色

QY数据的处理:如何定义QY因素的水平

如何创建累加到现有列累计和的新列?

按列中显示的配对组估算NA值

如何使用For-R循环在向量中找到一系列数字

带RStatix的Wilcoxon环内检验

对R中的列表列执行ROW Mean操作

在鼠标悬停时使用Plotly更改geom_point大小