我一直在努力解决这个问题很长一段时间。我想在R中创建一个光栅图,以显示神经元相对于刺激的动作电位(AP)的时间。这样的事情:Each row represents the AP series in a given time window aligned to a stimulus repeated several times (sometimes at different frequencies)
我有一个矩阵,其中包含相对于每个刺激的AP时间(正负时间值)。
我认为stripchart
是一个很好的解决方案,因为它绘制了一维数据。如何绘制矩阵的每一行(或行的选定元素)看起来像附加图像。我知道stripchart
函数也可以绘制包含不同长度的数字向量的列表,所以首先我从每一行中选择合适的元素,创建一个列表并绘制。我还尝试将as.list
函数应用于矩阵,因此当我想要更改选择矩阵元素的条件时,我不必创建新列表。看起来不错,但我有两个问题。首先,不知怎的,我不确定它是否正确地进行了绘图(逐行,选定的元素),而且我也不确定这是否是最有效的方法。其次,因为我有很多行,所以他们并没有像在第一张图片上那样在条形图中保持独立。我试图调整stripchart
函数的参数,但没有任何帮助。我的情节如下:enter image description here
总之,我正在寻找一种有效的方法来将矩阵行(选定元素)绘制为一维向量,以保持图像上的行分离。
感谢您的帮助!
答案 0 :(得分:0)
看起来条形图可以按列使用数据框....所以简而言之,转置矩阵,将矩阵转换为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)
我认为条带图不能按预期处理矩阵的原因是因为在R中矩阵只是内部的向量...
希望这有帮助。
我似乎无法将它旋转90度,尽管这确实使用了矩阵而没有强制
matplot(x1, pch="_", col="black")
通过一些photoshopping,这可能有用......
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)