1

次のデータに基づいて、プロットしたい

m <- 10000
x <- runif(m,-1,1)
a0 <- 0; a1 <- -4.46; a2 <- 1.6; a3 <- -4.63

以下で定義される2 つの変数p1.at.xp0.at.xに対してx.

p0.at.x <- numeric(0) 
p1.at.x <- numeric(0)               
for(i in 1:m) {
  p0.at.x[i] <- a0 +(a1*x[i]) + (a2*((1.5*(x[i]**2))-0.5)) + (a3*((2.5*(x[i]**3))-(1.5*x[i])))
  p1.at.x[i] <- 16 -(40.4*x[i]) + (31*((1.5*(x[i]** 2))-0.5 ))-(18.3*((2.5*(x[i]**3))-(1.5*x[i])))
}

私は次のことを試しました:

plot(x, p1.at.x, col="red")        
lines(x, p0.at.x, col="blue")

p0.at.xしかし、グラフにの線が表示されませんでした。それらを個別にプロットすると、形状が似ていて、範囲が異なるだけです。誰かが何が悪かったのか教えてもらえますか?

4

1 に答える 1

0

正しい ylim を設定する必要があります。

plot(x, p1.at.x, col="red",ylab='p',ylim=range(p0.at.x,p1.at.x))   
par(new=TRUE)  
plot(x, p0.at.x, col="blue",ylab='p', ylim=range(p0.at.x,p1.at.x))

範囲が異なる場合、最初のプロットのウィンドウの外にあるため、2 番目は表示されないため、プロットを開くときにその存在を考慮する必要があります。

または:

plot(x, p1.at.x, col="red",ylab='p',ylim=range(p0.at.x,p1.at.x))    
points(x, p0.at.x, col="blue",ylab='p', ylim=range(p0.at.x,p1.at.x))
于 2013-07-03T18:03:36.497 に答える