Обновление существующего графика вместо создания нового в цикле for - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь выполнить домашнее задание, в котором мне поручено построить гистограмму, полученную в результате эксперимента с доской Гальтона, по существу создавая нормальное распределение, добавляя по одному значению за раз и обновляя гистограмму после каждого испытания (шарика).Я хотел бы найти способ обновлять гистограмму после каждого добавления нового значения в дистрибутив;вместо этого мой код в настоящее время создает целую тонну графиков.

До сих пор я установил вектор с длиной = 1000 (хотя теоретически я должен иметь возможность применить свой окончательный код к вектору любой длины?) и создал цикл для добавления значений к нему, используя rbinom с 200 «колышками» с вероятностью 50% (падение влево или вправо).

x<-numeric(1000) #create vector length of 1000 values of 0
for (i in 1:1000) {
  x[i]<-sum(rbinom(200,1,0.5))
  hist(x,freq=FALSE)
}

У меня есть вызов исторических в цикле for (это может быть кардинальным грехом в R ...), который, как вы можете себе представить, производит 1000 графиков!Определенно не правильный способ пойти по этому поводу.Есть ли способ просто по существу обновить поверх предыдущего сюжета?Я имею в виду такие вещи, как abline (), lines () и т. Д., Которые (насколько я могу судить) просто добавляют линии поверх уже существующего графика в R, не создавая новый.Возможно, это связано с тем, что данные, связанные с этими функциями, не совпадают с данными в векторе?В любом случае, я не смог понять это с помощью Google.Я еще не пробовал использовать ggplot или пакеты animate, хотя я только смутно знаком с первым и думаю, что есть кривая обучения.

Последнее замечание: я довольно плохо знаком с R, поэтомуЯ был бы признателен за несвязанный совет по приведенному выше коду, но я также думаю, что очень продуктивно работать самостоятельно, поэтому я предпочел бы советы и / или общие советы вместо вставки рабочего кода.Заранее большое спасибо за помощь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...