web-dev-qa-db-ja.com

Gnuplotにプロットされた関数の定義域を制限する

一連のデータをGnuplotにプロットしていて、同じプロットに関数x^2を重ね合わせたいと思います。私はそのようにこれを行うことができます:

plot "filename" using 1:2, x**2

これにより、関数x^2がグラフの定義域全体に広がるプロットが生成されます。関数がグラフの小さな範囲、たとえばx = 1からx = 2にのみ表示され、グラフのサイズがfilenameによってxからのものになるように指定したいと思います。 = 0からx = 10。関数を単独でプロットするには、次のことができることを知っています。

plot [1:2] x**2

しかし、私が直感的に試したことがうまくいかなかったとしたら、どうすれば重ね合わせをまとめることができますか?

plot "filename" using 1:2, [1:2] x**2

invalid expression

これを機能させることになると、ドキュメントを解釈するのは難しいようです。

12
dplanet

最も簡単な方法は、三項演算子?を使用して区分的関数を定義することです。

f(x) = (x > 1 && x < 2) ? x**2 : 1/0
plot "filename" using 1:2, f(x)

別の方法は、replotコマンドを使用することです。

plot "filename" using 1:2
replot [1:2] x**2
18
andyras

これは古い質問ですが、もっと簡単な方法を探している人にとっては、次のようになります。

あなたの最初のアイデア

plot "filename" using 1:2, [1:2] x**2

現在動作しています。

4
Andrej