【问题标题】:text labels getting clipped on ggplot facet plot (clip = "off" not seeming to help)文本标签在 ggplot 平面图上被剪裁(剪辑 =“关闭”似乎没有帮助)
【发布时间】:2019-05-17 14:56:21
【问题描述】:
library(tidyverse)
ggplot(mpg %>% filter(displ > 6, displ < 8, ), aes(displ, cty)) + 
  geom_point() + 
  facet_grid(vars(drv), vars(cyl)) + 
  geom_text(aes(label = trans)) +
  coord_cartesian(clip = "off")

下面小平面图的底部面板包含一个近似坐标为x = 7y = 15 的点。该标签正在被刻面剪裁。您看不到括号内应该包含的内容。我尝试了clip = "off" 参数,但它似乎不能解决我的问题。这种剪裁的解决方案是什么?我想与 ggplot 沟通,如果刻面与标签重叠,请将轴推出一些。

我还应该提到,我希望标签保持原位。我真正需要的是在适当的时候推出轴标签,而我无法手动为正在考虑的实际绘图执行此操作。因为有几十个“实际”的情节,每隔几周就会定期变化,然后我在所有这些情节上重新运行我的脚本。坐标轴上的图也非常广泛(数量级),因此按百分比扩大比例也不可行(据我所知,也许有一个好方法)。

【问题讨论】:

    标签: r ggplot2


    【解决方案1】:
    library(tidyverse)
    ggplot(mpg %>% filter(displ > 6, displ < 8, ), aes(displ, cty)) + 
      geom_point() + 
      facet_grid(vars(drv), vars(cyl)) + 
      geom_text(aes(label = trans), hjust = "inward") +
      coord_cartesian(clip = "off")
    

    编辑,根据 OP 评论:或者,如果要保持标签对齐,请展开 x 轴:

    library(tidyverse)
    ggplot(mpg %>% filter(displ > 6, displ < 8, ), aes(displ, cty)) + 
      geom_point() + 
      facet_grid(vars(drv), vars(cyl)) + 
      geom_text(aes(label = trans)) +
      scale_x_continuous(expand = c(0.1,0)) +
      coord_cartesian(clip = "off")
    

    【讨论】:

    • 对不起@Jon Spring 我应该提到我需要标签保持原样,而不是需要将轴推出。刚刚将其添加到原始帖子中。
    • 添加了另一种方法,使用 expand 来扩大 x 轴的范围,使其包含超过数据范围的 10%(相对于默认值 5%)。
    猜你喜欢
    • 2011-06-02
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 2015-08-15
    • 2017-03-07
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多