R密度图:如何从x轴到密度曲线顶部添加实线

时间:2011-09-08 06:51:58

标签: r line graphing

我有一个密度图,使用:

plot(density(x))

我感兴趣的是创建一条从x轴到曲线上相应点的x = 5的线。

像这样:

example

2 个答案:

答案 0 :(得分:5)

您可以先将密度值存储在对象中,然后从该对象中检索xy元素,从而完成此操作。在以下示例中,我使用findInterval来检索给定x值的y值:

x <- rnorm(1000) # Sample data
y <- density(x)  # Calculate and store density

x0 <- 2 # Desired position on x-axis
y0 <- y$y[findInterval(x0, y$x)] # Corresponding y value

plot(density(x))
segments(x0, 0, x0, y0)

enter image description here

答案 1 :(得分:1)

如果它真的是z分数,那么只是实际绘制密度函数dnorm()。看起来你想让你的实际x轴为0。

zmax <- 4
curve(dnorm, -zmax, zmax, xaxt = 'n', bty = 'n')
axis(1, -zmax:zmax, pos = 0)

要在您的行中绘制,您可以再次使用dnorm功能。

zscore <- 1.65
segments(zscore, 0, zscore, dnorm(zscore))

你甚至可以很好地遮蔽它......:)

x <- seq(zscore, zmax, 0.01)
y <- c(0, dnorm(x)[1:(length(x)-2)],0)
polygon(x,y, density = 20)

您还可以使用segmentstext命令将标签放在阴影和非阴影区域的图表上。 thegraph