在某些x轴值的顶部绘制`rnorm`

时间:2017-05-13 16:39:14

标签: r plot

背景:

我试图复制下面的情节。该图由 8 rnorm()组成,每个都定义为rnorm(n = 100, mean = varying, sd = 1),8个中的每一个都堆叠在x轴特定值的顶部。例如,在 x轴值1 的顶部,有以下rnorm

rnorm(n = 100, mean = 11, sd = 1)

x轴值2 的顶部,有以下rnorm

rnorm(n = 100, mean = 12, sd = 1)(因此,只有mean变化一个值[即,此处从11到12]。)

编码问题:

我已尝试以下R代码复制我在下面显示的情节

(我想知道如何修复我的R代码以重现下面的情节?)

注意:我需要绘制以下面显示的方式获得的x和y的实际值,以便我可以通过绘制的数据传递lm,如下图所示

mean = 11:18     
x = rep( 1:8, 1e2 ) 
y = rnorm(1e2, mean, 1)

plot(x, y)

enter image description here

1 个答案:

答案 0 :(得分:1)

可能是根据rnorm()参数轻松创建mean的矢量化版本:

Vec_rnorm <- Vectorize(function(n, mean, sd) rnorm(n, mean, sd), 'mean')

y <- Vec_rnorm(1e2, 11:18, 1)

您将得到一个包含100行和8列的矩阵,其中每列与正常r.v的特定均值相关。

如果您想将所有内容都作为向量使用,请使用c()

y <- c(Vec_rnorm(1e2, 11:18, 1))

x <- rep(1:8, each = 1e2)

plot(x, y)

abline(lm(y~x))