R ggplot geom_text_排斥超出绘图限制的文字

R ggplot geom_text_排斥超出绘图限制的文字,r,ggplot2,ggrepel,R,Ggplot2,Ggrepel,当标签接近打印边界时,如何防止geom_text_repel()显示部分标签。下面是一个带有刻面网格的示例,例如,在chr3刻面中,顶部的标签“ZNF717”未完全显示 具有强制20个面和长标签的mtcars示例: mtcars %>% rowwise() %>% mutate(label="test_label") %>% mutate(facet=runif(n = n(),min = 1,max=20)) %>% ggplot(aes(x=disp,y=h

当标签接近打印边界时,如何防止geom_text_repel()显示部分标签。下面是一个带有刻面网格的示例,例如,在chr3刻面中,顶部的标签“ZNF717”未完全显示


具有强制20个面和长标签的mtcars示例:

mtcars %>% 
rowwise() %>% 
mutate(label="test_label") %>% 
mutate(facet=runif(n = n(),min = 1,max=20)) %>% 
ggplot(aes(x=disp,y=hp,label=label)) + 
geom_text_repel() + 
facet_grid(~facet)

每个面板都是独立的,默认情况下,打印仅限于打印区域。这可以通过修改默认坐标来覆盖。在这个极端的例子中,需要对两行使用facet_wrap()。我还减小了标签的字体大小,并限制了排斥,使其仅垂直移动标签。(显然,在实际使用中需要进一步调整记号标签和面板名称。)

上面的代码回答了这个问题,但至少在
mtcars
示例中产生了一个新问题,因为Geom是逐面板工作的,排斥不能防止延伸到相邻面板的标签重叠。令人惊讶的是,此外,在保存为位图格式时,左侧会出现一些意外的剪辑,但在保存为PDF格式时(至少在RStudio中)不会出现这种情况


另一个选项是,通过使用
角度旋转标签,或缩写用于标签的文本,确保标签适合可用空间。

每个面板都是独立的,默认情况下打印仅限于打印区域。这可以通过修改默认坐标来覆盖。在这个极端的例子中,需要对两行使用facet_wrap()。我还减小了标签的字体大小,并限制了排斥,使其仅垂直移动标签。(显然,在实际使用中需要进一步调整记号标签和面板名称。)

上面的代码回答了这个问题,但至少在
mtcars
示例中产生了一个新问题,因为Geom是逐面板工作的,排斥不能防止延伸到相邻面板的标签重叠。令人惊讶的是,此外,在保存为位图格式时,左侧会出现一些意外的剪辑,但在保存为PDF格式时(至少在RStudio中)不会出现这种情况


另一种选择是,使用
角度旋转标签,确保标签适合可用空间,或者缩写用于标签的文本。

您可以模拟一些数据并共享代码以使示例重现吗?使用强制20个面和长标签的mtcars示例:
mtcars%%>%rowwise()%%>%mutate(label=“test_label”)%%>%mutate(facet=runif(n=n(),min=1,max=20))%%>%ggplot(aes(x=disp,y=hp,label=label))+geom_text_repel()+facet_grid(~facet)
请编辑您的原始问题。添加
+coord_cartesian(clip=“off”)
perfect@MarcoSandri!你能模拟一些数据并共享你的代码以使你的示例重现吗?使用强制20个面和长标签的mtcars示例:
mtcars%%>%rowwise()%%>%mutate(label=“test_label”)%%>%mutate(facet=runif(n=n(),min=1,max=20))%%>%ggplot(aes(x=disp,y=hp,label=label))+geom\u text\u repel()+facet\u网格(~facet)
请编辑您的原始问题。添加
+coord\u cartesian(clip=“off”)
perfect@MarcoSandri!
library(ggplot2)
library(ggrepel)
library(dplyr)
mtcars %>% 
  rowwise() %>% 
  mutate(label="test_label") %>% 
  mutate(facet=runif(n = n(),min = 1,max=20)) %>% 
  ggplot(aes(x=disp,y=hp,label=label)) + 
  geom_text_repel(direction = "y", hjust = 0.5, size = 2) + 
  facet_wrap(~facet, nrow = 2) +
  coord_cartesian(clip = "off")