R,如何在ggplot中的默认中断中添加一个中断?

ltr*_*ltr 5 r ggplot2 axis-labels

假设我遇到以下问题:拥有一组数据,生成一个图表,指示有多少数据点低于任何给定阈值。

这是相当容易实现的

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)
Run Code Online (Sandbox Code Playgroud)

输出

问题是,假设我想添加一个标签来指示观察总数是 ( 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))
Run Code Online (Sandbox Code Playgroud)

但是,即使我更改 的值n.data,我也希望它能够工作,只需将其添加到默认中断即可。(如果您还消除了最后一个默认中断与默认中断之间的网格线,则会获得奖励积分n.data!)

在此输入图像描述

ltr*_*ltr 4

三年后,我对 ggplot 有了更多的了解,今天我将这样做。

ggplot() +
  geom_point(aes(x=x,y=y)) +
  geom_hline(yintercept = n.data) +
  scale_y_continuous(breaks = c(pretty(y), n.data))
Run Code Online (Sandbox Code Playgroud)