2次元グラフ: plot2d(x,y,opt_args)

driver("Pos");
xinit('plot2d.psf');
//xbasc();
cx=read('cos.dat',100,2);
cxx=cx(:,1);
cxy=cx(:,2);
xset("thickness",2);
xset("font",2,4);
xset("mark size",4);
xtitle('','x','y');
plot2d(cxx,[cxy,sin(cxx)],style=[-4,7]);
xend();
quit;
############################################################
# *.psf はプリアンブルがないので gv では見ることができません
# Scilab 付属の Blpr で普通の ps に変換します.
# また,縦長になってしまうので png 変換時に補正しました.
############################################################
Blpr "" plot2d.psf > plot2d.ps
convert -geometry 100%x50% plot2d.ps plot2d.png

# plot2d の Pos では xtitle が期待通りに動作しません. 



3次元グラフ: plot3d(x,y,z,opt_args)

driver("Pos");
xinit("plot3d.psf");
xbasc();
xlfont("-adobe-helvetica-medium-r-normal--%s-*-*-*-*-*-iso8859-1",0);
xset("font",0,3);
deff('[z]=surf(x,y)','z=sin(x)*sin(y)/x/y');
t=%pi*(-2:4/24:2);
z=feval(t,t,surf);
plot3d(t,t,z,-70,85," @Y@Z",[3,2,4]);
xstring(-4,-1.1,"X-Axis");
xtitle('z=sin(x)*sin(y)/x/y');
xend();
quit;
############################################################
# *.psf はプリアンブルがないので gv では見ることができません
# Scilab 付属の Blpr で普通の ps に変換します.
# また,縦長になってしまうので png 変換時に補正しました.
############################################################
Blpr "" plot3d.psf > plot3d.ps
convert -geometry 100%x50% plot3d.ps plot3d.png



等高線図: contour(x,y,z,nz,opt_args)

driver("pos");
xinit("contour.psf");
xbasc();
deff('[z]=surf(x,y)','z=sin(x)*sin(y)/x/y');
t=%pi*(-2:4/50:2);
z=feval(t,t,surf);
nz=-0.1:0.1:1
contour(t,t,z,nz);
xtitle('z=sin(x)*sin(y)/x/y','x','y');
xend();
quit;



マルチプロット: xsetec([x,y,w,h])

driver("Pos");
xinit("multi.psf");
xset("font",2,0);
xbasc();

xsetech([0,0,0.5,0.5])
cx=read('cos.dat',100,2);
cxx=cx(:,1);
cxy=cx(:,2);
xtitle('','x','y')
plot2d(cxx,[cxy,sin(cxx)],style=[-4,7])

xsetech([0.5,0,0.5,0.5])
deff('[z]=surf(x,y)','z=sin(x)*sin(y)/x/y');
t=%pi*(-2:4/24:2);
z=feval(t,t,surf);
plot3d(t,t,z,-70,85,"X@Y@Z",[3,2,4]);
xtitle('z=sin(x)*sin(y)/x/y');

xsetech([0,0.5,0.5,0.5])
deff('[z]=surf(x,y)','z=sin(x)*sin(y)/x/y');
t=%pi*(-2:4/50:2);
z=feval(t,t,surf);
nz=-0.1:0.1:1
contour(t,t,z,nz);
xtitle('z=sin(x)*sin(y)/x/y','x','y');

xend();
quit;