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

时间:2017-11-20 10:00:03

标签: 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)

Output

问题是,假设我想添加一个标签来表明观察总数(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之间的网格线,则可获得奖励积分!)

enter image description here

2 个答案:

答案 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时,您的休息时间会更新。