0

私はこれに長い間苦労してきました。R でラスター プロットを作成して、刺激に対するニューロンの活動電位 (AP) の時間を表示したいと思います。このようなもの:各行は、数回繰り返される刺激 (場合によっては異なる周波数) に合わせて指定された時間枠内の AP シリーズを表します。

各刺激 (正および負の時間値) に対する AP 時間を含むマトリックスがあります。

stripchart1次元データをプロットするので、これは良い解決策だと思いました。マトリックスの各行 (または選択した行の要素) をプロットして、添付の画像のようにするにはどうすればよいですか。関数は、長さが異なる数値ベクトルを含むリストをプロットすることもできることを知っているstripchartので、最初に各行から適切な要素を選択し、リストを作成してプロットしました。私も試しましたas.list関数がマトリックスに適用されるので、マトリックスの要素を選択する条件を変更したいときに新しいリストを作成する必要はありませんでした。問題ないように見えましたが、これには 2 つの問題があります。まず、どういうわけか、プロットが正しく行われたかどうか(行ごと、選択された要素)がわかりませんでした。また、これが最も効果的な方法であるかどうかもわかりません。第 2 に、多くの行があったため、最初の画像のように、ストリップチャートで分離したままではありませんでした。関数のパラメーターを調整しようとしましたstripchartが、何も役に立ちませんでした。私のプロットは次のようになります:ここに画像の説明を入力してください

要約すると、行列の行 (選択された要素) を 1 次元ベクトルとしてプロットし、行を画像上で分離する効果的な方法を探しています。

ご協力ありがとうございました!

4

1 に答える 1

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)

stripchart が期待どおりに行列を処理しない理由は、R では行列が内部的に単なるベクトルであるためだと思います...

お役に立てれば。

私のストリップチャートプロット

マットプロット

プロットを90度回転させることはできないようですが、これは行列を強制せずにそのまま使用します

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

マットプロット

マットプロットのバージョン 2:

いくつかのフォトショッピングで、これはうまくいくかもしれません...

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 に答える