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"))
感谢您的评论。
考虑以下情节:
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"))
感谢您的评论。