1

次のコマンドで作成した 2 本の直線を含むスペクトル プロットがあります (a はスペクトルの左部分からの勾配、b は右部分です。境界はここでは 3200 Hz です)。

a=0.009909
b=-0.003873

plot(spec, type="l", main...)

abline(a, col="orange")
abline(b, col="skyblue")
abline(v=3200, lty=2)

ここに画像の説明を入力

私がやりたいことは、次のプロットのように 3200 Hz までのオレンジ色の線と 3200 Hz からのスカイブルーの線を描くことです (大まかに Photoshop で作成したものです、申し訳ありません)。

ここに画像の説明を入力

それは関数 abline() で可能ですか? または、それを行う方法はありますか?

どうもありがとうございました!

4

2 に答える 2

1

エラーを修正するために編集

これは、データに拡張できる基本的な例です。これは、データの各サブセットに最適なラインの係数を生成し、ステートメントglmでこれらを使用して呼び出すことに依存しています。lines

test <- c(1.4, 2.3, 3.8, 3.6, 5.9, 5.4, 7.6, 7.4, 8.1, 8.7, 7.4, 6.9, 
5.4, 4.7, 2.7, 1.8, 1.1)

plot(test,type="l",ylim=c(0,12))
fit1 <- glm(test[1:8] ~ I(1:8))
fit2 <- glm(test[9:17] ~ I(1:9))

# ...$coefficients[2] is the slope, ...$coefficients[1] is the intercept
lines(1:9, 1:9 * fit1$coefficients[2] + fit1$coefficients[1],col="red")
lines(9:17,1:9 * fit2$coefficients[2] + fit2$coefficients[1],col="blue")

ここに画像の説明を入力

于 2012-11-15T02:06:29.993 に答える