【发布时间】:2018-05-07 09:09:09
【问题描述】:
考虑以下情节:
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")))
由于“>”符号在中断中不起作用。有什么建议?谢谢。
【问题讨论】:
-
在没有特定数值的情况下,ggplot 如何知道轴上的所需位置?为什么不使用新标签保留 break=c(2,3,4,5)?
-
在这种情况下当然可以,但是如果 5 以上点的权重是数千呢?该情节在视觉上不再有意义,然后我认为最好有一个阈值,例如5或1000以上等
-
@ykl 它不起作用,因为您将分类值传递给连续函数
scale_y_continuous。将scale_y_continuous替换为scale_y_discrete(name="Weight", breaks=c(">5"))。但是,我不确定这个建议是否合乎逻辑,因为mtcars数据中的wt不是离散的。
标签: r ggplot2 axis threshold continuous