R中连续尺度的自定义分类阈值轴中断

Custom categorical threshold axis break on a continuous scale in R

考虑以下情节:

library(ggplot2)
ggplot(mtcars, aes(mpg, wt)) +
  geom_point(aes(colour = factor(cyl))) +
  scale_y_continuous(name = "Weight", breaks = c(2, 3, 4, 5))

有没有人知道一种方法来替换例如的值5 带有分类中断,例如 "Above 5",三个观察值出现在此创建的中断线上?我正在寻找一种方法来将离群值包含在图中而不扭曲它,但仍然能够显示与它们相关的信息(在这种情况下,它们的 mpg 值)而不是完全排除它们。

以下代码:

library(ggplot2)
ggplot(mtcars, aes(mpg, wt)) +
  geom_point(aes(colour = factor(cyl))) +
  scale_y_continuous(name = "Weight", breaks = c(2, 3, 4, >5), labels = c(2, 3, 4, "Above 5")))

由于中断中的“>”符号而无法正常工作。有什么建议么?谢谢。

我发现在绘图之前一个简单的数据操作程序就能满足我的要求。

library(dplyr)
mtcars <- mtcars %>%  mutate(wt2 = case_when(wt < 5  ~ wt,
                              wt > 5 ~ 5))

以上代码会将 5 的值分配给任何高于 5 的 mpg 值,以便它们出现在同一条断线上。然后我可以绘图,点的重叠可以用 alpha 值的变化来显示。

  library(ggplot2)
ggplot(mtcars, aes(mpg, wt2)) +
  geom_point(aes(colour = factor(cyl), alpha = 0.2, size = 2)) +
  scale_y_continuous(name = "Weight", breaks = c(2, 3, 4, 5), labels = c(2, 3, 4, "Above 5"))

感谢您的评论。