使用相对y绘制低于密度图的段?

时间:2016-04-08 23:48:29

标签: r ggplot2

我想在密度图下面画一段,我希望距离是一个恒定的像素数。这可能吗?我知道如何硬编码距离。例如:

set.seed(40816)
library(ggplot2)
df.plot <- data.frame(x = rnorm(100, 0, 1))
ggplot(df.plot, aes(x = x)) + geom_density() +
  geom_segment(aes(x = -1, y = -0.05, xend = 1, yend = -0.05),
               linetype = "longdash")

产生:

enter image description here

但是

df.plot <- data.frame(x = rnorm(100, 0, 4))
ggplot(df.plot, aes(x = x)) + geom_density() +
  geom_segment(aes(x = -1, y = -0.025, xend = 1, yend = -0.025),
               linetype = "longdash")

生成一个图,其中段距密度

更远

enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用annotation_grob,

set.seed(40816)
library(ggplot2)
df.plot <- data.frame(x = rnorm(100, 0, 1))
strainerGrob <- function(pos=unit(2,"mm"), gp=gpar(lty=2, lwd=2))
  segmentsGrob(0, unit(1,"npc") - pos, 1, unit(1,"npc") - pos, gp=gp)

ggplot(df.plot, aes(x = x)) + geom_density() +
  annotation_custom(strainerGrob(), xmin = -1, xmax = 1, ymin=-Inf, ymax=0) +
  expand_limits(y=-0.1)

enter image description here