我有一个密度图,使用:
plot(density(x))
我感兴趣的是创建一条从x轴到曲线上相应点的x = 5的线。
像这样:
答案 0 :(得分:5)
您可以先将密度值存储在对象中,然后从该对象中检索x
和y
元素,从而完成此操作。在以下示例中,我使用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)
答案 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)
您还可以使用segments
和text
命令将标签放在阴影和非阴影区域的图表上。