【发布时间】:2020-09-05 00:53:34
【问题描述】:
有没有办法在不影响尺度训练或至少不影响尺度限制的情况下向 ggplot 添加图层?
我正在处理的用例是我想要包含参考线但仅在数据自然包含该线时才需要它。如果其余数据不需要,我不希望将比例扩大到包括该行。
建立一个例子
library("ggplot2")
g <- ggplot(data = mtcars, aes(x=mpg, y=hp)) + geom_point()
在 250 马力时添加参考线。
g + geom_hline(yintercept = 250)
如果我将数据更改为沿 y 轴延伸不远的数据,则 y 轴将扩展为包括水平线。
(g + geom_hline(yintercept = 250)) %+% mtcars[mtcars$cyl < 8,]
我想要的是在geom_hline 层中指定在确定 y 比例限制时不应使用它的某种方式。适用于任何几何/图层的东西是最好的。结果应该是这样的
g %+% mtcars[mtcars$cyl < 8,]
我知道我可以手动设置 y 轴范围。但这并不能解决我的一般问题,因为我不知道如果没有额外的水平线层,轴限制会是什么。
我认为应该可以。在examples in the documentation for layer_spatial 中,它提到annotation_spatial“层不训练尺度,所以数据保持中心”,但我没有看到一种概括的方法。
我看到了ggplot2: Adding a geom without affecting limits 的问题,这是同一个一般问题,但是由于缩放层内的值,所以答案是特定于添加的层的。
【问题讨论】: