ファイルからデータをプロットする R スクリプトがあります。スクリプトは現在、ハードコードされた値を ylim に使用しています。プロットされているデータに基づいて、ylim の正しい (つまり、適切な) 値を動的に決定したいと考えています。
を使用して x 軸の値を制限していますxlim
。私は、プロット関数が(によって選択されたx軸の値に基づいて)y値を計算できると考えていたでしょうxlim
-ylim引数を提供する必要はありませんが、引数xlim
なしでplot()を呼び出したときylim
、次のエラーが発生しました。
Error in plot.window(...) : need finite 'ylim' values
Calls: plot -> plot.default -> localWindow -> plot.window
In addition: Warning messages:
1: In min(x) : no non-missing arguments to min; returning Inf
2: In max(x) : no non-missing arguments to max; returning -Inf
私の質問は、 ?ylim
に制限を指定した場合に、に指定する値を動的に決定するにはどうすればよいかということxlim
です。ylim
理想的には、次のように制限を指定したいと思います。
ylim_lower <- (y value for xlim_lower) - [some fixed % distance]
ylim_upper <- (y value for xlim_upper) + [some fixed % distance]
どうすればこれを行うことができますか?
[[編集]]
dat <- read.csv(somefile)
n <- dim(dat)[1]
yvals1 <- rep(0,n)
yvals2 <- rep(0,n)
for(i in 1:n){
yvals1[i] <- foobar1(dat$X[i])
yvals2[i] <- foobar2(dat$X[i])
}
# Note: yvals1 and yvals2 MAY contain NAs
# below is the plot command that barfs:
plot(dat$X, yvals1, typ="l", col="green", xlim=c(lowest_val_cuttoff, highest_val_cuttoff), ylim= c(.2, .60), main=c(the_title, "Title goes here"), xlab="x axis label", ylab="y axis label")
lines(dat$X, yvals2, col="red")