Воспроизвести частотный матричный график - PullRequest
2 голосов
/ 06 мая 2011

У меня есть сюжет, который я хотел бы воссоздать в R. Вот этот сюжет:

Frquency Matrix

От: Скучно, ЭГ (1941).Статистические частоты как динамические равновесия.Психологический обзор, 48 (4), 279.

Это немного выше моего уровня выплат (способностей), поэтому и спрашиваю здесь.Скучные состояния:

В первом случае A может встречаться только «никогда» (0) или «всегда» (1).Во втором случае частоты 0,1 / 2 или 1;на третьем 0, 1/3, 2/3 или 1 и т. д. и т. д.

Очевидно, вам не нужно беспокоиться о метках и т. д. Просто подсказка для генерации данных и какна сюжет было бы здорово.;) Понятия не имею, как вообще начать ...

Ответы [ 2 ]

8 голосов
/ 06 мая 2011

вот пример:

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 представляет все точки.У каждой точки есть двое детей.Поэтому нарисуйте линии от каждой точки к детям.

enter image description here

5 голосов
/ 06 мая 2011

Решение с использованием базовой графики:

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))
}

enter image description here

...