【问题标题】:R, how to add one break to the default breaks in ggplot?R,如何在ggplot的默认中断中添加一个中断?
【发布时间】:2017-11-20 10:00:03
【问题描述】:

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

这很容易实现

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 之间的网格线,则可以加分!)

【问题讨论】:

  • 你成功了吗? (顺便说一句,根本不是重复的)
  • @DanChaltiel,感谢您重新打开它。我已经添加了一个关于我今天将如何处理这个问题的答案。

标签: r ggplot2 axis-labels


【解决方案1】:

三年后对 ggplot 有了更多的了解,这就是我今天的做法。

ggplot() +
  geom_point(aes(x=x,y=y)) +
  geom_hline(yintercept = n.data) +
  scale_y_continuous(breaks = c(pretty(y), n.data))

【讨论】:

    【解决方案2】:

    您可以通过以下方式摆脱上次自动中断和手动中断之间的网格线:

    theme_update(panel.grid.minor=element_blank())
    

    剩下的,我不太明白你的问题,因为当你更改n.data时,你的休息时间就会更新。

    【讨论】:

      猜你喜欢
      • 2020-11-07
      • 2021-04-29
      • 1970-01-01
      • 2022-06-12
      • 2016-04-19
      • 2021-02-16
      • 1970-01-01
      • 1970-01-01
      • 2017-10-11
      相关资源
      最近更新 更多