假设我有以下问题:拥有一组数据,生成一个图表,显示任何给定阈值以下的数据点数。
这很容易实现
n.data <- 215
set.seed(0)
dt <- rnorm(n.data) ** 2
x <- seq(0, 5, by=.2)
y <- sapply(x, function(i) length(which(dt < i)))
ggplot() +
geom_point(aes(x=x,y=y)) +
geom_hline(yintercept = n.data)
问题是,假设我想添加一个标签来表明观察总数(n.data
)。我如何做到这一点,同时保持其他休息是默认的?
我想要的结果看起来像下面的图片,用代码生成
ggplot() +
geom_point(aes(x=x,y=y)) +
geom_hline(yintercept = n.data) +
scale_y_continuous(breaks = c(seq(0,200,50),n.data))
但是,即使我更改n.data
的值,我也希望它能够正常工作,只需将其添加到默认的中断即可。
(如果您还摆脱了最后一次默认休息和n.data
之间的网格线,则可获得奖励积分!)
答案 0 :(得分:1)
三年后,我对 ggplot 有了更多的了解,这就是我今天要做的事情。
ggplot() +
geom_point(aes(x=x,y=y)) +
geom_hline(yintercept = n.data) +
scale_y_continuous(breaks = c(pretty(y), n.data))
答案 1 :(得分:0)
以下是如何摆脱上次自动中断和手动中断之间的网格线:
theme_update(panel.grid.minor=element_blank())
对于其他人,我无法完全理解您的问题,因为当您更改n.data
时,您的休息时间会更新。