【问题标题】:Reproduce frequency matrix plot重现频率矩阵图
【发布时间】:2011-05-06 14:40:57
【问题描述】:

我想在 R 中重新创建一个情节。这是情节:

来自:Boring, E. G. (1941)。统计频率作为动态平衡。心理评论,48(4),279。

这比我的工资等级(能力)略高,因此在这里问。无聊状态:

第一次 A 只能出现“从不”(0) 或“总是”(1)。在 第二次频率 为 0,1/2 或 1;在第三个 0, 1/3, 2/3,或1等,等等。

显然,您不必担心标签等问题。只需提示生成数据以及如何绘图就可以了。 ;) 我什至不知道如何开始......

【问题讨论】:

    标签: r matrix plot frequency


    【解决方案1】:

    这是一个例子:

    library(plyr)
    ps <- ldply(1:36, function(i)data.frame(s=0:i, n=i))
    plot.new()
    plot.window(c(1,36), c(0,1))
    apply(ps, 1, function(x){
      s<-x[1]; n<-x[2];
      lines(c(n, n+1, n, n+1), c(s/n, s/(n+1), s/n, (s+1)/(n+1)), type="o")})
    axis(1)
    axis(2)
    

    ps 代表所有点。每个点有两个孩子。 所以从每个点画线到孩子。

    【讨论】:

    • 尼斯。这给了我一些可以玩的东西。非常非常感谢。
    • Kohshke,您介意在您的代码中添加一些解释性 cmets 来解释您在这里做什么吗?
    • @koshke:我用你的代码作为这个提问者后续问题的起点stackoverflow.com/questions/7280421/…
    【解决方案2】:

    使用基础图形的解决方案:

    x <- 1:36
    boring <- function(x, n=1)n/(x+n-1)
    
    plot(x, boring(x), type="l", usr=c(0, 36, 0, 1))
    for(i in 1:36){
      lines(tail(x, 36-i+1), head(boring(x, i), 36-i+1), type="o", cex=0.5)
      lines(tail(x, 36-i+1), 1-head(boring(x, i), 36-i+1, type="o", cex=0.5))
    }
    

    【讨论】:

    • 也不错。我将调查这两个答案。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2011-11-08
    • 2017-05-09
    • 2015-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-14
    相关资源
    最近更新 更多