関数の部分表示
Q:関数のある部分だけを表示させたいのですが?
A1:'set clip' と 三項演算子(ternary) 'a ? b : c' を組み合わせましょう.
A2: Ver.5 からは,plotの次にキーワード
sampleを付することで,
異なるxの表示領域を持つ複数の関数を同時に表示することが
可能になりました.
- スクリプト
set xrange[0:5]
set yrange[-2:2]
f(x) = sin(x)*cos(pi*x)+exp(-x)
plot sample [:2] f(x), [2:4] f(x) lw 2, [4:] f(x) lw 4, [1:4] tan(pi*x)
pause -1
- 実行結果
A3: 媒介変数モード'set parametric' を用いると表示領域に変化を持たせら
れます.
- スクリプト
set parametric
set xrange[0:5]
set yrange[-2:2]
set trange [0:1]
f(t) = sin(t)*cos(pi*t)+exp(-t)
plot 2*t,f(2*t), 2+2*t,f(2+2*t) lw 2, 4+t,f(4+t) lw 4
pause -1
- 実行結果
A4: 階段関数を用いる方法も考えられます.階段関数の定義そのままですと,
Hv(x,a) = x > a ? 1 : 0
となりますが,これでは0の部分への折れ線が表示されてしまいます.
そこで,0の替わりに1/0を用い,『描かない』指示をすると旨くいきます.
- スクリプト
set xrange[0:5]
plot sample [0:2]
f(x)*Hvm(x,2),\
f(x)*Hv(x,2)*Hvm(x,4) lw 2,\
f(x)*Hv(x,4) lw 4
pause -1
- 実行結果