【发布时间】:2020-09-03 02:45:50
【问题描述】:
我正在尝试使用 ggplot2 向轴添加特定的刻度线和标签,而不更改轴的其余部分或网格线。
假设我有以下情节:
library(ggplot2)
d <- data.frame(x = c(0:100), y = c(0:100))
plot <- ggplot(d, aes(x = x, y = y)) + geom_point()
plot
我想做的是在 y 轴上添加一个特定的刻度线和值,以指示某种截止点。在实际实现中,这个截止点和数据是为了绘制传递给函数的参数,所以我想这样做而不对值进行硬编码。
我找到了一个解决方案,可以将特定的刻度线 + 标签添加到轴 here,它可以正常工作。假设在这种情况下,我想在 y = 10 处添加它。但是,如果我尝试一下,网格线也会改变:
plot + scale_y_continuous(breaks = c(pretty(d$y), 10),
labels = c(pretty(d$y), 10))
请注意,现在,不是每 25 个单位有主网格线,每 12.5 个单位有次网格线,而是每 20 个单位有主网格线,每 10 个单位有次网格线。此外,由于某种神秘的原因,额外的次网格线已经在 y = 55 处添加。
有没有一种方法可以为 y = 10 添加刻度 + 标签,同时使 y 轴看起来像第一个图?理想情况下,该解决方案仍然允许我在设置 y 轴时使用 n.breaks 参数,这样我就可以请求一些休息时间,然后添加额外的休息时间。
【问题讨论】:
-
您希望将参考线作为绘图网格的一部分而不是单独的
geom_hline(yintercept = <whatever desired value>)+ 注释标签的任何特殊原因?