2

R の対応するスペクトログラムを使用して時系列 (地震計) をプロットしようとしています。時系列をスペクトログラムと比較したいので、時系列の X 軸ラベルを X 軸ラベルと揃える必要があります。スペクトログラム。しかし、私はこれに多くの問題を抱えています。私がこれまでにできた最高のものは、使用することです

par(mar=c(0,10,0,8))

スペクトログラムのマージンを微調整して、手動でスペクトログラムのラベルを時系列のラベルに揃えるようにします。もちろん、これはおおよその値であり、完全に一致するわけではありません。以下のコードで生成された軸を互いに一致させる方法はありますか?

par(mfcol=c(2,1))
plot(seq_len(1000)*0.01, sin(2*pi*seq_len(1000)*0.01), type="l",xlab="Time",
ylab="Amplitude", main="Time Series", xlim=c(1,10))
image(seq_len(1000)*0.01,seq_len(100)*0.1,array(runif(1000000),dim=c(1000,100)),
xlab="Time", ylab="Frequency", main="Spectrogram", xlim=c(1,10))

前もって感謝します!

4

4 に答える 4

3

これはうまくいくようです:

par(mfcol=c(2,1))
plot(seq_len(1000)*0.01, sin(2*pi*seq_len(1000)*0.01), type="l", xaxs="i")
image(seq_len(1000)*0.01,seq_len(100)*0.1,array(runif(1000000),dim=c(1000,100)),
    xlab="Time", ylab="Frequency", main="Spectrogram")

xlim= 引数を削除し、plot() 関数で xaxs="i" を使用して、image() のデフォルトと一致させます。

于 2012-08-27T17:53:11.370 に答える
2

xaxs='i'への呼び出しに追加するかplot(これにより余分なパディングが削除されるため、画像プロットと一致します)、またはpar('usr')最初のプロットの後に使用して、x 制限が何であるかを確認し、それらの値をxlim画像の呼び出しで使用できます。

于 2012-08-27T17:49:31.387 に答える
1

これは、最初に見たよりもはるかに簡単であることがわかりました。その秘訣は、「ダミー プロット」を作成してから、イメージをプロットに追加することです。したがって、新しい作業コードは次のようになります。

par(mfcol=c(2,1))
plot(seq_len(1000)*0.01, sin(2*pi*seq_len(1000)*0.01),
type="l",xlab="Time",ylab="Amplitude", main="Time Series")
plot(c(0,10), c(0,10), type="n") #Dummy plot with axis limits for our spectrogram
image(seq_len(1000)*0.01,seq_len(100)*0.1,array(runif(1000000),dim=c(1000,100)),
xlab="Time", ylab="Frequency", main="Spectrogram",add=TRUE)
于 2012-08-27T18:42:05.057 に答える