自定义分类阈值轴在 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"之类的分类中断替换例如 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"))

感谢您的评论。

最新更新