r - 如何在 R 中绘制尖峰时间的直方图上的指数分布?

标签 r plot histogram neuroscience exponential-distribution

所以我的问题是在我上一个之后的发展之后。我一直在努力将尖峰时间作为尖峰列车的光栅图。我采用了 100 的发射率并获得了 20 次试验的尖峰训练:代码是:

fr = 100
dt = 1/1000 #dt in milisecond
duration = 2 #no of duration in s
nBins = 2000 #SpikeTrain
nTrials = 20 #NumberOfSimulations
MyPoissonSpikeTrain = function(p, fr= 100) {
  p = runif(nBins)
  q = ifelse(p < fr*dt, 1, 0)
  return(q)
}

set.seed(1)
SpikeMat <- t(replicate(nTrials, MyPoissonSpikeTrain()))

plot(x=-1,y=-1, xlab="time (s)", ylab="Trial",
main="Spike trains",
ylim=c(0.5, nTrials+1), xlim=c(0, duration))
for (i in 1: nTrials)
{
  clip(x1 = 0, x2= duration, y1= (i-0.2), y2= (i+0.4))
  abline(h=i, lwd= 1/4)
  abline(v= dt*which( SpikeMat[i,]== 1))
}

这给出了结果:
Spike Trains

完成所有这些之后,我的下一个任务是获得 Inter-Spike 间隔的向量并获得它们的直方图。因为 ISI 的分布遵循指数分布,如果我用相同的数据绘制 ISI 的指数分布,它将匹配由直方图的高度所做的曲线。
因此,为了首先获得尖峰时间,我使用了:
spike_times <- c(dt*which( SpikeMat[i, ]==1))

然后为了获得一个用于峰值间隔及其直方图的向量,我使用了以下命令行,
ISI <- diff(spike_times)
hist(ISI, density= 10, col= 'blue', xlab='ISI(ms)', ylab='number of occurences')

它给了我这个情节:

HistogramsofISIs

现在,我想要的是在直方图中绘制指数分布,以证明内尖峰间隔的指数分布性质是合理的。我对要使用的参数和使用的速率感到困惑。如果有人使用过 Interspike 间隔绘图,请帮忙。如果我的数据不完整,我很抱歉,如果我遗漏了什么,请告诉我。

最佳答案

我的研究员只是告诉我一行简单的代码:

x <- seq(0, 0.05, length=1000)
y <- dexp(x, rate=100)
lines(x,y)

这给了我,这个:
HistogramWithExpoDis

如果有人有任何方法可以使此过程更有效,请帮助我。

关于r - 如何在 R 中绘制尖峰时间的直方图上的指数分布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49732696/

相关文章:

python - 我可以通过另一个变量中的值为 seaborn distplot 着色吗?

r - data.table 中的笛卡尔连接

r - 如何在多行公式中使用 purrr 波浪号函数

regex - R:从 .txt 中读取引号,不带反斜杠

r - 将 fiddle 图与闪避的箱形图对齐

python - 在 seaborn distplot/distplot 函数(不是 distplot)中绘制直方图的高斯拟合

r - 如何在不知道情节的确切坐标的情况下将文本放在情节 (ggplot2) 上?

r - 错误: --with-readline=yes (default) and headers/libs are not available

haskell - Haskell 中的定向梯度直方图

r - 使用 ggplot2 向具有多个 stat_bin 层的直方图添加图例