0

我已经为此苦苦挣扎了很长时间。我想在 R 中创建一个栅格图,以显示神经元相对于刺激的动作电位 (AP) 时间。像这样:每一行代表给定时间窗口中的 AP 系列,与重复多次的刺激对齐(有时以不同的频率)

我有一个矩阵,其中包含相对于每个刺激的 AP 时间(正时间值和负时间值)。

我认为这stripchart是一个很好的解决方案,因为它绘制了一维数据。如何绘制矩阵的每一行(或行的选定元素)看起来像附加的图像。我知道该stripchart函数还可以绘制包含不同长度的数字向量的列表,所以首先我从每一行中选择合适的元素,创建一个列表并绘制。我也试过as.list函数应用于矩阵,因此当我想更改选择矩阵元素的条件时不必创建新列表。看起来不错,但我有两个问题。首先,不知何故,我不确定它是否正确地进行了绘图(逐行,选定的元素),而且我不确定这是最有效的方法。其次,因为我有很多行,所以它们在条形图中并没有像在第一张图像上那样保持独立。我试图调整stripchart函数的参数,但没有任何帮助。我的情节如下所示:在此处输入图像描述

总之,我正在寻找一种将矩阵行(选定元素)绘制为一维向量的有效方法,使行在图像上保持分离。

谢谢您的帮助!

4

1 回答 1

0

看起来 stripchart 按列处理数据帧....所以简而言之,转置矩阵,将矩阵转换为 df

x1 <- matrix(rnorm(50),nrow = 5)
x1<-cbind(x1, rep(4,5))
df<-as.data.frame(t(x1))
df
stripchart(df, pch = "|", las=1)

我认为 stripchart 不能按预期处理矩阵的原因是因为在 R 中,矩阵在内部只是一个向量......

希望这可以帮助。

我的条形图

Matplot

我似乎无法让它将情节旋转 90 度,尽管这确实使用了没有强制的矩阵

matplot(x1, pch="_", col="black")

Matplot

matplot 的第 2 版:

通过一些Photoshop,这可能会起作用......

par(mar=c(5.1,2.1,4.1,4.1))
matplot(x1, pch="_", col="black", las=3, yaxt="n", ylab="")
axis(4)
mtext("x1",side = 4,line = 2)

在此处输入图像描述

于 2016-10-21T18:15:03.643 回答