next up previous
Next: Up: 関数が与えられた時 Previous: HippoDraw

S

複雑な条件判断を含むような関数でも簡単に描ける。 数式の書き方でgnuplotと異なるのは、冪乗 だけである。

条件判断はif構造を使うか、 ベクトルの要素指定でもある程度できる (plot( x[abc < 0], y[abc < 0], type="l")abc< 0のデータのみをプロットする)。

xにベクトルとして、グラフにしたい範囲の値を細かくとって与える。 そのxを使って関数を計算し、yに与える。 plot(x, y, type="l")とすればよい。(勿論、名前は、 x, yに限ることはない。type="l"は点を描かず線で結ぶこと。 もし、点も線も出したなら、"o"または"b";違いは何か?)。 軸を対数にするには、log="x", log="y", log="xy"等を関数の中に指定すればよい。

x, y 軸のラベル、グラフの表題、等を与えるには、

        plot(x, y, ..., xlab="Temperature(deg)", ylab="Concentration(%)",
        main="Concentration of Super-matter")
等のようにすればよい。表題等は、title関数で別に与えてもよい (title(xlab="...", ylab="...", main...))。

複数のグラフを重ねる時は、 あらかじめyの範囲が分かっていれば、最初の枠とりで指定する。
plot(c(-100, 100), c(0, 20), type="n", xlab=...)
としてから、points関数やlines関数で書き加えていけばよい。 これは、xの範囲がyの範囲が なことを示している。type="n" がないと、左下と右上の点を描いてしまう。

範囲が分からない時は、グラフを一度描いて見る。 最大の範囲を与えるグラフを見つけ、それを最初に描いてみてもよい。 その後で、points(x, y, type="l")とすれば、グラフは重なる。

ps()を使えば、用紙1枚に1グラフ、 ps2()、ps4()を使えば、 それぞれ2、4つのグラフが描ける。ps4の定義をまねして、 参考書の383ぺージを参照すれば、1枚に20の小さいグラフを入れることも 可能になる。ファイルに保存する時はps形式になる。epsにするには、 一度Drawplusに取り込む必要がある。アイコンをドラッグするだけでDrawPlus の画面に取り込める。

軸の線を太くする、軸の形式を変える、その他いろいろな指定は par関数を調べればよい。




Kinya Hibino
Wed May 3 15:57:30 JST 1995